function hasCanvasSupport() {
  var t = document.createElement("canvas");
  return !(!t.getContext || !t.getContext("2d"));
}
define(
  "com/fido/app/Fallback",
  ["require", "exports", "module"],
  function (t, e, i) {
    var r = function (t) {
      t = t || document.body;
      var e = {
          message:
            '<p>Uh-oh! It looks like you need to update your browser before you\'ll be able to play this game</p><p>In the meantime, check out <a href="#brand_url">this</a> or <a href="#cbeebies_games_url">this</a>.',
          brand_url: "http://www.someurl.tld/",
          games_url: "http://www.someurl.tld/",
          enabled: !0,
        },
        i = e.message;
      (i = i.replace("#brand_url", e.brand_url)),
        (i = i.replace("#games_url", e.games_url));
      var r = document.createElement("link");
      (r.type = "text/css"),
        (r.rel = "stylesheet"),
        (r.href = "assets/css/unsupported.css"),
        document.getElementsByTagName("head")[0].appendChild(r),
        (t.innerHTML = i);
    };
    (r.constructor = r), (i.exports = r);
  }
),
  (function (t) {
    var e,
      i,
      r,
      n,
      o,
      s = t.GreenSockGlobals || t,
      a = function (t) {
        var e,
          i = t.split("."),
          r = s;
        for (e = 0; i.length > e; e++) r[i[e]] = r = r[i[e]] || {};
        return r;
      },
      h = a("com.greensock"),
      l = [].slice,
      u = function () {},
      c = {},
      d = function (e, i, r, n) {
        (this.sc = c[e] ? c[e].sc : []),
          (c[e] = this),
          (this.gsClass = null),
          (this.func = r);
        var o = [];
        (this.check = function (h) {
          for (var l, u, p, f, m = i.length, v = m; --m > -1; )
            (l = c[i[m]] || new d(i[m], [])).gsClass
              ? ((o[m] = l.gsClass), v--)
              : h && l.sc.push(this);
          if (0 === v && r)
            for (
              u = ("com.greensock." + e).split("."),
                p = u.pop(),
                f = a(u.join("."))[p] = this.gsClass = r.apply(r, o),
                n &&
                  ((s[p] = f),
                  "function" == typeof define && define.amd
                    ? define(
                        (t.GreenSockAMDPath ? t.GreenSockAMDPath + "/" : "") +
                          e.split(".").join("/"),
                        [],
                        function () {
                          return f;
                        }
                      )
                    : "undefined" != typeof module &&
                      module.exports &&
                      (module.exports = f)),
                m = 0;
              this.sc.length > m;
              m++
            )
              this.sc[m].check();
        }),
          this.check(!0);
      },
      p = (t._gsDefine = function (t, e, i, r) {
        return new d(t, e, i, r);
      }),
      f = (h._class = function (t, e, i) {
        return (
          (e = e || function () {}),
          p(
            t,
            [],
            function () {
              return e;
            },
            i
          ),
          e
        );
      });
    p.globals = s;
    var m = [0, 0, 1, 1],
      v = [],
      g = f(
        "easing.Ease",
        function (t, e, i, r) {
          (this._func = t),
            (this._type = i || 0),
            (this._power = r || 0),
            (this._params = e ? m.concat(e) : m);
        },
        !0
      ),
      y = (g.map = {}),
      x = (g.register = function (t, e, i, r) {
        for (
          var n,
            o,
            s,
            a,
            l = e.split(","),
            u = l.length,
            c = (i || "easeIn,easeOut,easeInOut").split(",");
          --u > -1;

        )
          for (
            o = l[u],
              n = r ? f("easing." + o, null, !0) : h.easing[o] || {},
              s = c.length;
            --s > -1;

          )
            (a = c[s]),
              (y[o + "." + a] =
                y[a + o] =
                n[a] =
                  t.getRatio ? t : t[a] || new t());
      });
    for (
      r = g.prototype,
        r._calcEnd = !1,
        r.getRatio = function (t) {
          if (this._func)
            return (this._params[0] = t), this._func.apply(null, this._params);
          var e = this._type,
            i = this._power,
            r = 1 === e ? 1 - t : 2 === e ? t : 0.5 > t ? 2 * t : 2 * (1 - t);
          return (
            1 === i
              ? (r *= r)
              : 2 === i
              ? (r *= r * r)
              : 3 === i
              ? (r *= r * r * r)
              : 4 === i && (r *= r * r * r * r),
            1 === e ? 1 - r : 2 === e ? r : 0.5 > t ? r / 2 : 1 - r / 2
          );
        },
        e = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"],
        i = e.length;
      --i > -1;

    )
      (r = e[i] + ",Power" + i),
        x(new g(null, null, 1, i), r, "easeOut", !0),
        x(new g(null, null, 2, i), r, "easeIn" + (0 === i ? ",easeNone" : "")),
        x(new g(null, null, 3, i), r, "easeInOut");
    (y.linear = h.easing.Linear.easeIn), (y.swing = h.easing.Quad.easeInOut);
    var _ = f("events.EventDispatcher", function (t) {
      (this._listeners = {}), (this._eventTarget = t || this);
    });
    (r = _.prototype),
      (r.addEventListener = function (t, e, i, r, s) {
        s = s || 0;
        var a,
          h,
          l = this._listeners[t],
          u = 0;
        for (
          null == l && (this._listeners[t] = l = []), h = l.length;
          --h > -1;

        )
          (a = l[h]),
            a.c === e && a.s === i
              ? l.splice(h, 1)
              : 0 === u && s > a.pr && (u = h + 1);
        l.splice(u, 0, { c: e, s: i, up: r, pr: s }),
          this !== n || o || n.wake();
      }),
      (r.removeEventListener = function (t, e) {
        var i,
          r = this._listeners[t];
        if (r)
          for (i = r.length; --i > -1; )
            if (r[i].c === e) return void r.splice(i, 1);
      }),
      (r.dispatchEvent = function (t) {
        var e,
          i,
          r,
          n = this._listeners[t];
        if (n)
          for (e = n.length, i = this._eventTarget; --e > -1; )
            (r = n[e]),
              r.up
                ? r.c.call(r.s || i, { type: t, target: i })
                : r.c.call(r.s || i);
      });
    var b = t.requestAnimationFrame,
      w = t.cancelAnimationFrame,
      T =
        Date.now ||
        function () {
          return new Date().getTime();
        },
      S = T();
    for (e = ["ms", "moz", "webkit", "o"], i = e.length; --i > -1 && !b; )
      (b = t[e[i] + "RequestAnimationFrame"]),
        (w =
          t[e[i] + "CancelAnimationFrame"] ||
          t[e[i] + "CancelRequestAnimationFrame"]);
    f("Ticker", function (t, e) {
      var i,
        r,
        s,
        a,
        h,
        l = this,
        c = T(),
        d = e !== !1 && b,
        p = function (t) {
          (S = T()), (l.time = (S - c) / 1e3);
          var e,
            n = l.time - h;
          (!i || n > 0 || t === !0) &&
            (l.frame++, (h += n + (n >= a ? 0.004 : a - n)), (e = !0)),
            t !== !0 && (s = r(p)),
            e && l.dispatchEvent("tick");
        };
      _.call(l),
        (this.time = this.frame = 0),
        (this.tick = function () {
          p(!0);
        }),
        (this.sleep = function () {
          null != s &&
            (d && w ? w(s) : clearTimeout(s),
            (r = u),
            (s = null),
            l === n && (o = !1));
        }),
        (this.wake = function () {
          null !== s && l.sleep(),
            (r =
              0 === i
                ? u
                : d && b
                ? b
                : function (t) {
                    return setTimeout(t, 0 | (1e3 * (h - l.time) + 1));
                  }),
            l === n && (o = !0),
            p(2);
        }),
        (this.fps = function (t) {
          return arguments.length
            ? ((i = t), (a = 1 / (i || 60)), (h = this.time + a), void l.wake())
            : i;
        }),
        (this.useRAF = function (t) {
          return arguments.length ? (l.sleep(), (d = t), void l.fps(i)) : d;
        }),
        l.fps(t),
        setTimeout(function () {
          d && (!s || 5 > l.frame) && l.useRAF(!1);
        }, 1500);
    }),
      (r = h.Ticker.prototype = new h.events.EventDispatcher()),
      (r.constructor = h.Ticker);
    var E = f("core.Animation", function (t, e) {
      if (
        ((this.vars = e = e || {}),
        (this._duration = this._totalDuration = t || 0),
        (this._delay = Number(e.delay) || 0),
        (this._timeScale = 1),
        (this._active = e.immediateRender === !0),
        (this.data = e.data),
        (this._reversed = e.reversed === !0),
        N)
      ) {
        o || n.wake();
        var i = this.vars.useFrames ? B : N;
        i.add(this, i._time), this.vars.paused && this.paused(!0);
      }
    });
    (n = E.ticker = new h.Ticker()),
      (r = E.prototype),
      (r._dirty = r._gc = r._initted = r._paused = !1),
      (r._totalTime = r._time = 0),
      (r._rawPrevTime = -1),
      (r._next = r._last = r._onUpdate = r._timeline = r.timeline = null),
      (r._paused = !1);
    var A = function () {
      T() - S > 2e3 && n.wake(), setTimeout(A, 2e3);
    };
    A(),
      (r.play = function (t, e) {
        return (
          arguments.length && this.seek(t, e), this.reversed(!1).paused(!1)
        );
      }),
      (r.pause = function (t, e) {
        return arguments.length && this.seek(t, e), this.paused(!0);
      }),
      (r.resume = function (t, e) {
        return arguments.length && this.seek(t, e), this.paused(!1);
      }),
      (r.seek = function (t, e) {
        return this.totalTime(Number(t), e !== !1);
      }),
      (r.restart = function (t, e) {
        return this.reversed(!1)
          .paused(!1)
          .totalTime(t ? -this._delay : 0, e !== !1, !0);
      }),
      (r.reverse = function (t, e) {
        return (
          arguments.length && this.seek(t || this.totalDuration(), e),
          this.reversed(!0).paused(!1)
        );
      }),
      (r.render = function () {}),
      (r.invalidate = function () {
        return this;
      }),
      (r._enabled = function (t, e) {
        return (
          o || n.wake(),
          (this._gc = !t),
          (this._active =
            t &&
            !this._paused &&
            this._totalTime > 0 &&
            this._totalTime < this._totalDuration),
          e !== !0 &&
            (t && !this.timeline
              ? this._timeline.add(this, this._startTime - this._delay)
              : !t && this.timeline && this._timeline._remove(this, !0)),
          !1
        );
      }),
      (r._kill = function () {
        return this._enabled(!1, !1);
      }),
      (r.kill = function (t, e) {
        return this._kill(t, e), this;
      }),
      (r._uncache = function (t) {
        for (var e = t ? this : this.timeline; e; )
          (e._dirty = !0), (e = e.timeline);
        return this;
      }),
      (r._swapSelfInParams = function (t) {
        for (var e = t.length, i = t.concat(); --e > -1; )
          "{self}" === t[e] && (i[e] = this);
        return i;
      }),
      (r.eventCallback = function (t, e, i, r) {
        if ("on" === (t || "").substr(0, 2)) {
          var n = this.vars;
          if (1 === arguments.length) return n[t];
          null == e
            ? delete n[t]
            : ((n[t] = e),
              (n[t + "Params"] =
                i instanceof Array && -1 !== i.join("").indexOf("{self}")
                  ? this._swapSelfInParams(i)
                  : i),
              (n[t + "Scope"] = r)),
            "onUpdate" === t && (this._onUpdate = e);
        }
        return this;
      }),
      (r.delay = function (t) {
        return arguments.length
          ? (this._timeline.smoothChildTiming &&
              this.startTime(this._startTime + t - this._delay),
            (this._delay = t),
            this)
          : this._delay;
      }),
      (r.duration = function (t) {
        return arguments.length
          ? ((this._duration = this._totalDuration = t),
            this._uncache(!0),
            this._timeline.smoothChildTiming &&
              this._time > 0 &&
              this._time < this._duration &&
              0 !== t &&
              this.totalTime(this._totalTime * (t / this._duration), !0),
            this)
          : ((this._dirty = !1), this._duration);
      }),
      (r.totalDuration = function (t) {
        return (
          (this._dirty = !1),
          arguments.length ? this.duration(t) : this._totalDuration
        );
      }),
      (r.time = function (t, e) {
        return arguments.length
          ? (this._dirty && this.totalDuration(),
            this.totalTime(t > this._duration ? this._duration : t, e))
          : this._time;
      }),
      (r.totalTime = function (t, e, i) {
        if ((o || n.wake(), !arguments.length)) return this._totalTime;
        if (this._timeline) {
          if (
            (0 > t && !i && (t += this.totalDuration()),
            this._timeline.smoothChildTiming)
          ) {
            this._dirty && this.totalDuration();
            var r = this._totalDuration,
              s = this._timeline;
            if (
              (t > r && !i && (t = r),
              (this._startTime =
                (this._paused ? this._pauseTime : s._time) -
                (this._reversed ? r - t : t) / this._timeScale),
              s._dirty || this._uncache(!1),
              s._timeline)
            )
              for (; s._timeline; )
                s._timeline._time !==
                  (s._startTime + s._totalTime) / s._timeScale &&
                  s.totalTime(s._totalTime, !0),
                  (s = s._timeline);
          }
          this._gc && this._enabled(!0, !1),
            this._totalTime !== t && this.render(t, e, !1);
        }
        return this;
      }),
      (r.startTime = function (t) {
        return arguments.length
          ? (t !== this._startTime &&
              ((this._startTime = t),
              this.timeline &&
                this.timeline._sortChildren &&
                this.timeline.add(this, t - this._delay)),
            this)
          : this._startTime;
      }),
      (r.timeScale = function (t) {
        if (!arguments.length) return this._timeScale;
        if (
          ((t = t || 1e-6), this._timeline && this._timeline.smoothChildTiming)
        ) {
          var e = this._pauseTime,
            i = e || 0 === e ? e : this._timeline.totalTime();
          this._startTime = i - ((i - this._startTime) * this._timeScale) / t;
        }
        return (this._timeScale = t), this._uncache(!1);
      }),
      (r.reversed = function (t) {
        return arguments.length
          ? (t != this._reversed &&
              ((this._reversed = t), this.totalTime(this._totalTime, !0)),
            this)
          : this._reversed;
      }),
      (r.paused = function (t) {
        if (!arguments.length) return this._paused;
        if (t != this._paused && this._timeline) {
          o || t || n.wake();
          var e = this._timeline,
            i = e.rawTime(),
            r = i - this._pauseTime;
          !t &&
            e.smoothChildTiming &&
            ((this._startTime += r), this._uncache(!1)),
            (this._pauseTime = t ? i : null),
            (this._paused = t),
            (this._active =
              !t &&
              this._totalTime > 0 &&
              this._totalTime < this._totalDuration),
            t ||
              0 === r ||
              0 === this._duration ||
              this.render(
                e.smoothChildTiming
                  ? this._totalTime
                  : (i - this._startTime) / this._timeScale,
                !0,
                !0
              );
        }
        return this._gc && !t && this._enabled(!0, !1), this;
      });
    var C = f("core.SimpleTimeline", function (t) {
      E.call(this, 0, t),
        (this.autoRemoveChildren = this.smoothChildTiming = !0);
    });
    (r = C.prototype = new E()),
      (r.constructor = C),
      (r.kill()._gc = !1),
      (r._first = r._last = null),
      (r._sortChildren = !1),
      (r.add = r.insert =
        function (t, e) {
          var i, r;
          if (
            ((t._startTime = Number(e || 0) + t._delay),
            t._paused &&
              this !== t._timeline &&
              (t._pauseTime =
                t._startTime + (this.rawTime() - t._startTime) / t._timeScale),
            t.timeline && t.timeline._remove(t, !0),
            (t.timeline = t._timeline = this),
            t._gc && t._enabled(!0, !0),
            (i = this._last),
            this._sortChildren)
          )
            for (r = t._startTime; i && i._startTime > r; ) i = i._prev;
          return (
            i
              ? ((t._next = i._next), (i._next = t))
              : ((t._next = this._first), (this._first = t)),
            t._next ? (t._next._prev = t) : (this._last = t),
            (t._prev = i),
            this._timeline && this._uncache(!0),
            this
          );
        }),
      (r._remove = function (t, e) {
        return (
          t.timeline === this &&
            (e || t._enabled(!1, !0),
            (t.timeline = null),
            t._prev
              ? (t._prev._next = t._next)
              : this._first === t && (this._first = t._next),
            t._next
              ? (t._next._prev = t._prev)
              : this._last === t && (this._last = t._prev),
            this._timeline && this._uncache(!0)),
          this
        );
      }),
      (r.render = function (t, e, i) {
        var r,
          n = this._first;
        for (this._totalTime = this._time = this._rawPrevTime = t; n; )
          (r = n._next),
            (n._active || (t >= n._startTime && !n._paused)) &&
              (n._reversed
                ? n.render(
                    (n._dirty ? n.totalDuration() : n._totalDuration) -
                      (t - n._startTime) * n._timeScale,
                    e,
                    i
                  )
                : n.render((t - n._startTime) * n._timeScale, e, i)),
            (n = r);
      }),
      (r.rawTime = function () {
        return o || n.wake(), this._totalTime;
      });
    var M = f(
        "TweenLite",
        function (e, i, r) {
          if (
            (E.call(this, i, r), (this.render = M.prototype.render), null == e)
          )
            throw "Cannot tween a null target.";
          this.target = e = "string" != typeof e ? e : M.selector(e) || e;
          var n,
            o,
            s,
            a =
              e.jquery ||
              (e.length &&
                e !== t &&
                e[0] &&
                (e[0] === t || (e[0].nodeType && e[0].style && !e.nodeType))),
            h = this.vars.overwrite;
          if (
            ((this._overwrite = h =
              null == h
                ? I[M.defaultOverwrite]
                : "number" == typeof h
                ? h >> 0
                : I[h]),
            (a || e instanceof Array) && "number" != typeof e[0])
          )
            for (
              this._targets = s = l.call(e, 0),
                this._propLookup = [],
                this._siblings = [],
                n = 0;
              s.length > n;
              n++
            )
              (o = s[n]),
                o
                  ? "string" != typeof o
                    ? o.length &&
                      o !== t &&
                      o[0] &&
                      (o[0] === t ||
                        (o[0].nodeType && o[0].style && !o.nodeType))
                      ? (s.splice(n--, 1),
                        (this._targets = s = s.concat(l.call(o, 0))))
                      : ((this._siblings[n] = U(o, this, !1)),
                        1 === h &&
                          this._siblings[n].length > 1 &&
                          X(o, this, null, 1, this._siblings[n]))
                    : ((o = s[n--] = M.selector(o)),
                      "string" == typeof o && s.splice(n + 1, 1))
                  : s.splice(n--, 1);
          else
            (this._propLookup = {}),
              (this._siblings = U(e, this, !1)),
              1 === h &&
                this._siblings.length > 1 &&
                X(e, this, null, 1, this._siblings);
          (this.vars.immediateRender ||
            (0 === i &&
              0 === this._delay &&
              this.vars.immediateRender !== !1)) &&
            this.render(-this._delay, !1, !0);
        },
        !0
      ),
      R = function (e) {
        return (
          e.length &&
          e !== t &&
          e[0] &&
          (e[0] === t || (e[0].nodeType && e[0].style && !e.nodeType))
        );
      },
      P = function (t, e) {
        var i,
          r = {};
        for (i in t)
          k[i] ||
            (i in e &&
              "x" !== i &&
              "y" !== i &&
              "width" !== i &&
              "height" !== i &&
              "className" !== i &&
              "border" !== i) ||
            !(!D[i] || (D[i] && D[i]._autoCSS)) ||
            ((r[i] = t[i]), delete t[i]);
        t.css = r;
      };
    (r = M.prototype = new E()),
      (r.constructor = M),
      (r.kill()._gc = !1),
      (r.ratio = 0),
      (r._firstPT = r._targets = r._overwrittenProps = r._startAt = null),
      (r._notifyPluginsOfEnabled = !1),
      (M.version = "1.10.2"),
      (M.defaultEase = r._ease = new g(null, null, 1, 1)),
      (M.defaultOverwrite = "auto"),
      (M.ticker = n),
      (M.autoSleep = !0),
      (M.selector =
        t.$ ||
        t.jQuery ||
        function (e) {
          return t.$
            ? ((M.selector = t.$), t.$(e))
            : t.document
            ? t.document.getElementById("#" === e.charAt(0) ? e.substr(1) : e)
            : e;
        });
    var O = (M._internals = {}),
      D = (M._plugins = {}),
      F = (M._tweenLookup = {}),
      L = 0,
      k = (O.reservedProps = {
        ease: 1,
        delay: 1,
        overwrite: 1,
        onComplete: 1,
        onCompleteParams: 1,
        onCompleteScope: 1,
        useFrames: 1,
        runBackwards: 1,
        startAt: 1,
        onUpdate: 1,
        onUpdateParams: 1,
        onUpdateScope: 1,
        onStart: 1,
        onStartParams: 1,
        onStartScope: 1,
        onReverseComplete: 1,
        onReverseCompleteParams: 1,
        onReverseCompleteScope: 1,
        onRepeat: 1,
        onRepeatParams: 1,
        onRepeatScope: 1,
        easeParams: 1,
        yoyo: 1,
        immediateRender: 1,
        repeat: 1,
        repeatDelay: 1,
        data: 1,
        paused: 1,
        reversed: 1,
        autoCSS: 1,
      }),
      I = {
        none: 0,
        all: 1,
        auto: 2,
        concurrent: 3,
        allOnStart: 4,
        preexisting: 5,
        true: 1,
        false: 0,
      },
      B = (E._rootFramesTimeline = new C()),
      N = (E._rootTimeline = new C());
    (N._startTime = n.time),
      (B._startTime = n.frame),
      (N._active = B._active = !0),
      (E._updateRoot = function () {
        if (
          (N.render((n.time - N._startTime) * N._timeScale, !1, !1),
          B.render((n.frame - B._startTime) * B._timeScale, !1, !1),
          !(n.frame % 120))
        ) {
          var t, e, i;
          for (i in F) {
            for (e = F[i].tweens, t = e.length; --t > -1; )
              e[t]._gc && e.splice(t, 1);
            0 === e.length && delete F[i];
          }
          if (
            ((i = N._first),
            (!i || i._paused) &&
              M.autoSleep &&
              !B._first &&
              1 === n._listeners.tick.length)
          ) {
            for (; i && i._paused; ) i = i._next;
            i || n.sleep();
          }
        }
      }),
      n.addEventListener("tick", E._updateRoot);
    var U = function (t, e, i) {
        var r,
          n,
          o = t._gsTweenID;
        if (
          (F[o || (t._gsTweenID = o = "t" + L++)] ||
            (F[o] = { target: t, tweens: [] }),
          e && ((r = F[o].tweens), (r[(n = r.length)] = e), i))
        )
          for (; --n > -1; ) r[n] === e && r.splice(n, 1);
        return F[o].tweens;
      },
      X = function (t, e, i, r, n) {
        var o, s, a, h;
        if (1 === r || r >= 4) {
          for (h = n.length, o = 0; h > o; o++)
            if ((a = n[o]) !== e) a._gc || (a._enabled(!1, !1) && (s = !0));
            else if (5 === r) break;
          return s;
        }
        var l,
          u = e._startTime + 1e-10,
          c = [],
          d = 0,
          p = 0 === e._duration;
        for (o = n.length; --o > -1; )
          (a = n[o]) === e ||
            a._gc ||
            a._paused ||
            (a._timeline !== e._timeline
              ? ((l = l || j(e, 0, p)), 0 === j(a, l, p) && (c[d++] = a))
              : u >= a._startTime &&
                a._startTime + a.totalDuration() / a._timeScale + 1e-10 > u &&
                (((p || !a._initted) && 2e-10 >= u - a._startTime) ||
                  (c[d++] = a)));
        for (o = d; --o > -1; )
          (a = c[o]),
            2 === r && a._kill(i, t) && (s = !0),
            (2 !== r || (!a._firstPT && a._initted)) &&
              a._enabled(!1, !1) &&
              (s = !0);
        return s;
      },
      j = function (t, e, i) {
        for (
          var r = t._timeline, n = r._timeScale, o = t._startTime, s = 1e-10;
          r._timeline;

        ) {
          if (((o += r._startTime), (n *= r._timeScale), r._paused))
            return -100;
          r = r._timeline;
        }
        return (
          (o /= n),
          o > e
            ? o - e
            : (i && o === e) || (!t._initted && 2 * s > o - e)
            ? s
            : (o += t.totalDuration() / t._timeScale / n) > e + s
            ? 0
            : o - e - s
        );
      };
    (r._init = function () {
      var t,
        e,
        i,
        r,
        n = this.vars,
        o = this._overwrittenProps,
        s = this._duration,
        a = n.immediateRender,
        h = n.ease;
      if (n.startAt) {
        if (
          (this._startAt && this._startAt.render(-1, !0),
          (n.startAt.overwrite = 0),
          (n.startAt.immediateRender = !0),
          (this._startAt = M.to(this.target, 0, n.startAt)),
          a)
        )
          if (this._time > 0) this._startAt = null;
          else if (0 !== s) return;
      } else if (n.runBackwards && n.immediateRender && 0 !== s)
        if (this._startAt) this._startAt.render(-1, !0), (this._startAt = null);
        else if (0 === this._time) {
          i = {};
          for (r in n) (k[r] && "autoCSS" !== r) || (i[r] = n[r]);
          return (
            (i.overwrite = 0), void (this._startAt = M.to(this.target, 0, i))
          );
        }
      if (
        ((this._ease = h
          ? h instanceof g
            ? n.easeParams instanceof Array
              ? h.config.apply(h, n.easeParams)
              : h
            : "function" == typeof h
            ? new g(h, n.easeParams)
            : y[h] || M.defaultEase
          : M.defaultEase),
        (this._easeType = this._ease._type),
        (this._easePower = this._ease._power),
        (this._firstPT = null),
        this._targets)
      )
        for (t = this._targets.length; --t > -1; )
          this._initProps(
            this._targets[t],
            (this._propLookup[t] = {}),
            this._siblings[t],
            o ? o[t] : null
          ) && (e = !0);
      else
        e = this._initProps(this.target, this._propLookup, this._siblings, o);
      if (
        (e && M._onPluginEvent("_onInitAllProps", this),
        o &&
          (this._firstPT ||
            ("function" != typeof this.target && this._enabled(!1, !1))),
        n.runBackwards)
      )
        for (i = this._firstPT; i; ) (i.s += i.c), (i.c = -i.c), (i = i._next);
      (this._onUpdate = n.onUpdate), (this._initted = !0);
    }),
      (r._initProps = function (e, i, r, n) {
        var o, s, a, h, l, u;
        if (null == e) return !1;
        this.vars.css ||
          (e.style &&
            e !== t &&
            e.nodeType &&
            D.css &&
            this.vars.autoCSS !== !1 &&
            P(this.vars, e));
        for (o in this.vars) {
          if (((u = this.vars[o]), k[o]))
            u instanceof Array &&
              -1 !== u.join("").indexOf("{self}") &&
              (this.vars[o] = u = this._swapSelfInParams(u, this));
          else if (
            D[o] &&
            (h = new D[o]())._onInitTween(e, this.vars[o], this)
          ) {
            for (
              this._firstPT = l =
                {
                  _next: this._firstPT,
                  t: h,
                  p: "setRatio",
                  s: 0,
                  c: 1,
                  f: !0,
                  n: o,
                  pg: !0,
                  pr: h._priority,
                },
                s = h._overwriteProps.length;
              --s > -1;

            )
              i[h._overwriteProps[s]] = this._firstPT;
            (h._priority || h._onInitAllProps) && (a = !0),
              (h._onDisable || h._onEnable) &&
                (this._notifyPluginsOfEnabled = !0);
          } else
            (this._firstPT =
              i[o] =
              l =
                {
                  _next: this._firstPT,
                  t: e,
                  p: o,
                  f: "function" == typeof e[o],
                  n: o,
                  pg: !1,
                  pr: 0,
                }),
              (l.s = l.f
                ? e[
                    o.indexOf("set") ||
                    "function" != typeof e["get" + o.substr(3)]
                      ? o
                      : "get" + o.substr(3)
                  ]()
                : parseFloat(e[o])),
              (l.c =
                "string" == typeof u && "=" === u.charAt(1)
                  ? parseInt(u.charAt(0) + "1", 10) * Number(u.substr(2))
                  : Number(u) - l.s || 0);
          l && l._next && (l._next._prev = l);
        }
        return n && this._kill(n, e)
          ? this._initProps(e, i, r, n)
          : this._overwrite > 1 &&
            this._firstPT &&
            r.length > 1 &&
            X(e, this, i, this._overwrite, r)
          ? (this._kill(i, e), this._initProps(e, i, r, n))
          : a;
      }),
      (r.render = function (t, e, i) {
        var r,
          n,
          o,
          s = this._time;
        if (t >= this._duration)
          (this._totalTime = this._time = this._duration),
            (this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1),
            this._reversed || ((r = !0), (n = "onComplete")),
            0 === this._duration &&
              ((0 === t || 0 > this._rawPrevTime) &&
                this._rawPrevTime !== t &&
                ((i = !0),
                this._rawPrevTime > 0 &&
                  ((n = "onReverseComplete"), e && (t = -1))),
              (this._rawPrevTime = t));
        else if (1e-7 > t)
          (this._totalTime = this._time = 0),
            (this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0),
            (0 !== s || (0 === this._duration && this._rawPrevTime > 0)) &&
              ((n = "onReverseComplete"), (r = this._reversed)),
            0 > t
              ? ((this._active = !1),
                0 === this._duration &&
                  (this._rawPrevTime >= 0 && (i = !0), (this._rawPrevTime = t)))
              : this._initted || (i = !0);
        else if (((this._totalTime = this._time = t), this._easeType)) {
          var a = t / this._duration,
            h = this._easeType,
            l = this._easePower;
          (1 === h || (3 === h && a >= 0.5)) && (a = 1 - a),
            3 === h && (a *= 2),
            1 === l
              ? (a *= a)
              : 2 === l
              ? (a *= a * a)
              : 3 === l
              ? (a *= a * a * a)
              : 4 === l && (a *= a * a * a * a),
            (this.ratio =
              1 === h
                ? 1 - a
                : 2 === h
                ? a
                : 0.5 > t / this._duration
                ? a / 2
                : 1 - a / 2);
        } else this.ratio = this._ease.getRatio(t / this._duration);
        if (this._time !== s || i) {
          if (!this._initted) {
            if ((this._init(), !this._initted)) return;
            this._time && !r
              ? (this.ratio = this._ease.getRatio(this._time / this._duration))
              : r &&
                this._ease._calcEnd &&
                (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1));
          }
          for (
            this._active ||
              (!this._paused &&
                this._time !== s &&
                t >= 0 &&
                (this._active = !0)),
              0 === s &&
                (this._startAt &&
                  (t >= 0
                    ? this._startAt.render(t, e, i)
                    : n || (n = "_dummyGS")),
                this.vars.onStart &&
                  (0 !== this._time || 0 === this._duration) &&
                  (e ||
                    this.vars.onStart.apply(
                      this.vars.onStartScope || this,
                      this.vars.onStartParams || v
                    ))),
              o = this._firstPT;
            o;

          )
            o.f
              ? o.t[o.p](o.c * this.ratio + o.s)
              : (o.t[o.p] = o.c * this.ratio + o.s),
              (o = o._next);
          this._onUpdate &&
            (0 > t && this._startAt && this._startAt.render(t, e, i),
            e ||
              this._onUpdate.apply(
                this.vars.onUpdateScope || this,
                this.vars.onUpdateParams || v
              )),
            n &&
              (this._gc ||
                (0 > t &&
                  this._startAt &&
                  !this._onUpdate &&
                  this._startAt.render(t, e, i),
                r &&
                  (this._timeline.autoRemoveChildren && this._enabled(!1, !1),
                  (this._active = !1)),
                !e &&
                  this.vars[n] &&
                  this.vars[n].apply(
                    this.vars[n + "Scope"] || this,
                    this.vars[n + "Params"] || v
                  )));
        }
      }),
      (r._kill = function (t, e) {
        if (
          ("all" === t && (t = null),
          null == t && (null == e || e === this.target))
        )
          return this._enabled(!1, !1);
        e =
          "string" != typeof e
            ? e || this._targets || this.target
            : M.selector(e) || e;
        var i, r, n, o, s, a, h, l;
        if ((e instanceof Array || R(e)) && "number" != typeof e[0])
          for (i = e.length; --i > -1; ) this._kill(t, e[i]) && (a = !0);
        else {
          if (this._targets) {
            for (i = this._targets.length; --i > -1; )
              if (e === this._targets[i]) {
                (s = this._propLookup[i] || {}),
                  (this._overwrittenProps = this._overwrittenProps || []),
                  (r = this._overwrittenProps[i] =
                    t ? this._overwrittenProps[i] || {} : "all");
                break;
              }
          } else {
            if (e !== this.target) return !1;
            (s = this._propLookup),
              (r = this._overwrittenProps =
                t ? this._overwrittenProps || {} : "all");
          }
          if (s) {
            (h = t || s),
              (l =
                t !== r &&
                "all" !== r &&
                t !== s &&
                (null == t || t._tempKill !== !0));
            for (n in h)
              (o = s[n]) &&
                (o.pg && o.t._kill(h) && (a = !0),
                (o.pg && 0 !== o.t._overwriteProps.length) ||
                  (o._prev
                    ? (o._prev._next = o._next)
                    : o === this._firstPT && (this._firstPT = o._next),
                  o._next && (o._next._prev = o._prev),
                  (o._next = o._prev = null)),
                delete s[n]),
                l && (r[n] = 1);
            !this._firstPT && this._initted && this._enabled(!1, !1);
          }
        }
        return a;
      }),
      (r.invalidate = function () {
        return (
          this._notifyPluginsOfEnabled && M._onPluginEvent("_onDisable", this),
          (this._firstPT = null),
          (this._overwrittenProps = null),
          (this._onUpdate = null),
          (this._startAt = null),
          (this._initted = this._active = this._notifyPluginsOfEnabled = !1),
          (this._propLookup = this._targets ? {} : []),
          this
        );
      }),
      (r._enabled = function (t, e) {
        if ((o || n.wake(), t && this._gc)) {
          var i,
            r = this._targets;
          if (r)
            for (i = r.length; --i > -1; )
              this._siblings[i] = U(r[i], this, !0);
          else this._siblings = U(this.target, this, !0);
        }
        return (
          E.prototype._enabled.call(this, t, e),
          this._notifyPluginsOfEnabled && this._firstPT
            ? M._onPluginEvent(t ? "_onEnable" : "_onDisable", this)
            : !1
        );
      }),
      (M.to = function (t, e, i) {
        return new M(t, e, i);
      }),
      (M.from = function (t, e, i) {
        return (
          (i.runBackwards = !0),
          (i.immediateRender = 0 != i.immediateRender),
          new M(t, e, i)
        );
      }),
      (M.fromTo = function (t, e, i, r) {
        return (
          (r.startAt = i),
          (r.immediateRender =
            0 != r.immediateRender && 0 != i.immediateRender),
          new M(t, e, r)
        );
      }),
      (M.delayedCall = function (t, e, i, r, n) {
        return new M(e, 0, {
          delay: t,
          onComplete: e,
          onCompleteParams: i,
          onCompleteScope: r,
          onReverseComplete: e,
          onReverseCompleteParams: i,
          onReverseCompleteScope: r,
          immediateRender: !1,
          useFrames: n,
          overwrite: 0,
        });
      }),
      (M.set = function (t, e) {
        return new M(t, 0, e);
      }),
      (M.killTweensOf = M.killDelayedCallsTo =
        function (t, e) {
          for (var i = M.getTweensOf(t), r = i.length; --r > -1; )
            i[r]._kill(e, t);
        }),
      (M.getTweensOf = function (t) {
        if (null == t) return [];
        t = "string" != typeof t ? t : M.selector(t) || t;
        var e, i, r, n;
        if ((t instanceof Array || R(t)) && "number" != typeof t[0]) {
          for (e = t.length, i = []; --e > -1; )
            i = i.concat(M.getTweensOf(t[e]));
          for (e = i.length; --e > -1; )
            for (n = i[e], r = e; --r > -1; ) n === i[r] && i.splice(e, 1);
        } else
          for (i = U(t).concat(), e = i.length; --e > -1; )
            i[e]._gc && i.splice(e, 1);
        return i;
      });
    var z = f(
      "plugins.TweenPlugin",
      function (t, e) {
        (this._overwriteProps = (t || "").split(",")),
          (this._propName = this._overwriteProps[0]),
          (this._priority = e || 0),
          (this._super = z.prototype);
      },
      !0
    );
    if (
      ((r = z.prototype),
      (z.version = "1.10.1"),
      (z.API = 2),
      (r._firstPT = null),
      (r._addTween = function (t, e, i, r, n, o) {
        var s, a;
        return null != r &&
          (s =
            "number" == typeof r || "=" !== r.charAt(1)
              ? Number(r) - i
              : parseInt(r.charAt(0) + "1", 10) * Number(r.substr(2)))
          ? ((this._firstPT = a =
              {
                _next: this._firstPT,
                t: t,
                p: e,
                s: i,
                c: s,
                f: "function" == typeof t[e],
                n: n || e,
                r: o,
              }),
            a._next && (a._next._prev = a),
            a)
          : void 0;
      }),
      (r.setRatio = function (t) {
        for (var e, i = this._firstPT, r = 1e-6; i; )
          (e = i.c * t + i.s),
            i.r
              ? (e = 0 | (e + (e > 0 ? 0.5 : -0.5)))
              : r > e && e > -r && (e = 0),
            i.f ? i.t[i.p](e) : (i.t[i.p] = e),
            (i = i._next);
      }),
      (r._kill = function (t) {
        var e,
          i = this._overwriteProps,
          r = this._firstPT;
        if (null != t[this._propName]) this._overwriteProps = [];
        else for (e = i.length; --e > -1; ) null != t[i[e]] && i.splice(e, 1);
        for (; r; )
          null != t[r.n] &&
            (r._next && (r._next._prev = r._prev),
            r._prev
              ? ((r._prev._next = r._next), (r._prev = null))
              : this._firstPT === r && (this._firstPT = r._next)),
            (r = r._next);
        return !1;
      }),
      (r._roundProps = function (t, e) {
        for (var i = this._firstPT; i; )
          (t[this._propName] ||
            (null != i.n && t[i.n.split(this._propName + "_").join("")])) &&
            (i.r = e),
            (i = i._next);
      }),
      (M._onPluginEvent = function (t, e) {
        var i,
          r,
          n,
          o,
          s,
          a = e._firstPT;
        if ("_onInitAllProps" === t) {
          for (; a; ) {
            for (s = a._next, r = n; r && r.pr > a.pr; ) r = r._next;
            (a._prev = r ? r._prev : o) ? (a._prev._next = a) : (n = a),
              (a._next = r) ? (r._prev = a) : (o = a),
              (a = s);
          }
          a = e._firstPT = n;
        }
        for (; a; )
          a.pg && "function" == typeof a.t[t] && a.t[t]() && (i = !0),
            (a = a._next);
        return i;
      }),
      (z.activate = function (t) {
        for (var e = t.length; --e > -1; )
          t[e].API === z.API && (D[new t[e]()._propName] = t[e]);
        return !0;
      }),
      (p.plugin = function (t) {
        if (!(t && t.propName && t.init && t.API))
          throw "illegal plugin definition.";
        var e,
          i = t.propName,
          r = t.priority || 0,
          n = t.overwriteProps,
          o = {
            init: "_onInitTween",
            set: "setRatio",
            kill: "_kill",
            round: "_roundProps",
            initAll: "_onInitAllProps",
          },
          s = f(
            "plugins." + i.charAt(0).toUpperCase() + i.substr(1) + "Plugin",
            function () {
              z.call(this, i, r), (this._overwriteProps = n || []);
            },
            t.global === !0
          ),
          a = (s.prototype = new z(i));
        (a.constructor = s), (s.API = t.API);
        for (e in o) "function" == typeof t[e] && (a[o[e]] = t[e]);
        return (s.version = t.version), z.activate([s]), s;
      }),
      (e = t._gsQueue))
    ) {
      for (i = 0; e.length > i; i++) e[i]();
      for (r in c)
        c[r].func ||
          t.console.log(
            "GSAP encountered missing dependency: com.greensock." + r
          );
    }
    o = !1;
  })(window),
  define("TWEEN", function () {}),
  (window._gsQueue || (window._gsQueue = [])).push(function () {
    window._gsDefine(
      "easing.Back",
      ["easing.Ease"],
      function (t) {
        var e,
          i,
          r,
          n = window.GreenSockGlobals || window,
          o = n.com.greensock,
          s = 2 * Math.PI,
          a = Math.PI / 2,
          h = o._class,
          l = function (e, i) {
            var r = h("easing." + e, function () {}, !0),
              n = (r.prototype = new t());
            return (n.constructor = r), (n.getRatio = i), r;
          },
          u = t.register || function () {},
          c = function (t, e, i, r) {
            var n = h(
              "easing." + t,
              { easeOut: new e(), easeIn: new i(), easeInOut: new r() },
              !0
            );
            return u(n, t), n;
          },
          d = function (t, e, i) {
            (this.t = t),
              (this.v = e),
              i &&
                ((this.next = i),
                (i.prev = this),
                (this.c = i.v - e),
                (this.gap = i.t - t));
          },
          p = function (e, i) {
            var r = h(
                "easing." + e,
                function (t) {
                  (this._p1 = t || 0 === t ? t : 1.70158),
                    (this._p2 = 1.525 * this._p1);
                },
                !0
              ),
              n = (r.prototype = new t());
            return (
              (n.constructor = r),
              (n.getRatio = i),
              (n.config = function (t) {
                return new r(t);
              }),
              r
            );
          },
          f = c(
            "Back",
            p("BackOut", function (t) {
              return (t -= 1) * t * ((this._p1 + 1) * t + this._p1) + 1;
            }),
            p("BackIn", function (t) {
              return t * t * ((this._p1 + 1) * t - this._p1);
            }),
            p("BackInOut", function (t) {
              return 1 > (t *= 2)
                ? 0.5 * t * t * ((this._p2 + 1) * t - this._p2)
                : 0.5 * ((t -= 2) * t * ((this._p2 + 1) * t + this._p2) + 2);
            })
          ),
          m = h(
            "easing.SlowMo",
            function (t, e, i) {
              (e = e || 0 === e ? e : 0.7),
                null == t ? (t = 0.7) : t > 1 && (t = 1),
                (this._p = 1 !== t ? e : 0),
                (this._p1 = (1 - t) / 2),
                (this._p2 = t),
                (this._p3 = this._p1 + this._p2),
                (this._calcEnd = i === !0);
            },
            !0
          ),
          v = (m.prototype = new t());
        return (
          (v.constructor = m),
          (v.getRatio = function (t) {
            var e = t + (0.5 - t) * this._p;
            return this._p1 > t
              ? this._calcEnd
                ? 1 - (t = 1 - t / this._p1) * t
                : e - (t = 1 - t / this._p1) * t * t * t * e
              : t > this._p3
              ? this._calcEnd
                ? 1 - (t = (t - this._p3) / this._p1) * t
                : e + (t - e) * (t = (t - this._p3) / this._p1) * t * t * t
              : this._calcEnd
              ? 1
              : e;
          }),
          (m.ease = new m(0.7, 0.7)),
          (v.config = m.config =
            function (t, e, i) {
              return new m(t, e, i);
            }),
          (e = h(
            "easing.SteppedEase",
            function (t) {
              (t = t || 1), (this._p1 = 1 / t), (this._p2 = t + 1);
            },
            !0
          )),
          (v = e.prototype = new t()),
          (v.constructor = e),
          (v.getRatio = function (t) {
            return (
              0 > t ? (t = 0) : t >= 1 && (t = 0.999999999),
              ((this._p2 * t) >> 0) * this._p1
            );
          }),
          (v.config = e.config =
            function (t) {
              return new e(t);
            }),
          (i = h(
            "easing.RoughEase",
            function (e) {
              e = e || {};
              for (
                var i,
                  r,
                  n,
                  o,
                  s,
                  a,
                  h = e.taper || "none",
                  l = [],
                  u = 0,
                  c = 0 | (e.points || 20),
                  p = c,
                  f = e.randomize !== !1,
                  m = e.clamp === !0,
                  v = e.template instanceof t ? e.template : null,
                  g = "number" == typeof e.strength ? 0.4 * e.strength : 0.4;
                --p > -1;

              )
                (i = f ? Math.random() : (1 / c) * p),
                  (r = v ? v.getRatio(i) : i),
                  "none" === h
                    ? (n = g)
                    : "out" === h
                    ? ((o = 1 - i), (n = o * o * g))
                    : "in" === h
                    ? (n = i * i * g)
                    : 0.5 > i
                    ? ((o = 2 * i), (n = 0.5 * o * o * g))
                    : ((o = 2 * (1 - i)), (n = 0.5 * o * o * g)),
                  f
                    ? (r += Math.random() * n - 0.5 * n)
                    : p % 2
                    ? (r += 0.5 * n)
                    : (r -= 0.5 * n),
                  m && (r > 1 ? (r = 1) : 0 > r && (r = 0)),
                  (l[u++] = { x: i, y: r });
              for (
                l.sort(function (t, e) {
                  return t.x - e.x;
                }),
                  a = new d(1, 1, null),
                  p = c;
                --p > -1;

              )
                (s = l[p]), (a = new d(s.x, s.y, a));
              this._prev = new d(0, 0, 0 !== a.t ? a : a.next);
            },
            !0
          )),
          (v = i.prototype = new t()),
          (v.constructor = i),
          (v.getRatio = function (t) {
            var e = this._prev;
            if (t > e.t) {
              for (; e.next && t >= e.t; ) e = e.next;
              e = e.prev;
            } else for (; e.prev && e.t >= t; ) e = e.prev;
            return (this._prev = e), e.v + ((t - e.t) / e.gap) * e.c;
          }),
          (v.config = function (t) {
            return new i(t);
          }),
          (i.ease = new i()),
          c(
            "Bounce",
            l("BounceOut", function (t) {
              return 1 / 2.75 > t
                ? 7.5625 * t * t
                : 2 / 2.75 > t
                ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75
                : 2.5 / 2.75 > t
                ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375
                : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375;
            }),
            l("BounceIn", function (t) {
              return 1 / 2.75 > (t = 1 - t)
                ? 1 - 7.5625 * t * t
                : 2 / 2.75 > t
                ? 1 - (7.5625 * (t -= 1.5 / 2.75) * t + 0.75)
                : 2.5 / 2.75 > t
                ? 1 - (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375)
                : 1 - (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375);
            }),
            l("BounceInOut", function (t) {
              var e = 0.5 > t;
              return (
                (t = e ? 1 - 2 * t : 2 * t - 1),
                (t =
                  1 / 2.75 > t
                    ? 7.5625 * t * t
                    : 2 / 2.75 > t
                    ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75
                    : 2.5 / 2.75 > t
                    ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375
                    : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375),
                e ? 0.5 * (1 - t) : 0.5 * t + 0.5
              );
            })
          ),
          c(
            "Circ",
            l("CircOut", function (t) {
              return Math.sqrt(1 - (t -= 1) * t);
            }),
            l("CircIn", function (t) {
              return -(Math.sqrt(1 - t * t) - 1);
            }),
            l("CircInOut", function (t) {
              return 1 > (t *= 2)
                ? -0.5 * (Math.sqrt(1 - t * t) - 1)
                : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);
            })
          ),
          (r = function (e, i, r) {
            var n = h(
                "easing." + e,
                function (t, e) {
                  (this._p1 = t || 1),
                    (this._p2 = e || r),
                    (this._p3 =
                      (this._p2 / s) * (Math.asin(1 / this._p1) || 0));
                },
                !0
              ),
              o = (n.prototype = new t());
            return (
              (o.constructor = n),
              (o.getRatio = i),
              (o.config = function (t, e) {
                return new n(t, e);
              }),
              n
            );
          }),
          c(
            "Elastic",
            r(
              "ElasticOut",
              function (t) {
                return (
                  this._p1 *
                    Math.pow(2, -10 * t) *
                    Math.sin(((t - this._p3) * s) / this._p2) +
                  1
                );
              },
              0.3
            ),
            r(
              "ElasticIn",
              function (t) {
                return -(
                  this._p1 *
                  Math.pow(2, 10 * (t -= 1)) *
                  Math.sin(((t - this._p3) * s) / this._p2)
                );
              },
              0.3
            ),
            r(
              "ElasticInOut",
              function (t) {
                return 1 > (t *= 2)
                  ? -0.5 *
                      this._p1 *
                      Math.pow(2, 10 * (t -= 1)) *
                      Math.sin(((t - this._p3) * s) / this._p2)
                  : 0.5 *
                      this._p1 *
                      Math.pow(2, -10 * (t -= 1)) *
                      Math.sin(((t - this._p3) * s) / this._p2) +
                      1;
              },
              0.45
            )
          ),
          c(
            "Expo",
            l("ExpoOut", function (t) {
              return 1 - Math.pow(2, -10 * t);
            }),
            l("ExpoIn", function (t) {
              return Math.pow(2, 10 * (t - 1)) - 0.001;
            }),
            l("ExpoInOut", function (t) {
              return 1 > (t *= 2)
                ? 0.5 * Math.pow(2, 10 * (t - 1))
                : 0.5 * (2 - Math.pow(2, -10 * (t - 1)));
            })
          ),
          c(
            "Sine",
            l("SineOut", function (t) {
              return Math.sin(t * a);
            }),
            l("SineIn", function (t) {
              return -Math.cos(t * a) + 1;
            }),
            l("SineInOut", function (t) {
              return -0.5 * (Math.cos(Math.PI * t) - 1);
            })
          ),
          h(
            "easing.EaseLookup",
            {
              find: function (e) {
                return t.map[e];
              },
            },
            !0
          ),
          u(n.SlowMo, "SlowMo", "ease,"),
          u(i, "RoughEase", "ease,"),
          u(e, "SteppedEase", "ease,"),
          f
        );
      },
      !0
    );
  }),
  window._gsDefine && window._gsQueue.pop()(),
  define("EASEPACK", function () {}),
  (window._gsQueue || (window._gsQueue = [])).push(function () {
    window._gsDefine(
      "plugins.CSSPlugin",
      ["plugins.TweenPlugin", "TweenLite"],
      function (t, e) {
        var i,
          r,
          n,
          o,
          s = function () {
            t.call(this, "css"), (this._overwriteProps.length = 0);
          },
          a = {},
          h = (s.prototype = new t("css"));
        (h.constructor = s),
          (s.version = "1.9.6"),
          (s.API = 2),
          (s.defaultTransformPerspective = 0),
          (h = "px"),
          (s.suffixMap = {
            top: h,
            right: h,
            bottom: h,
            left: h,
            width: h,
            height: h,
            fontSize: h,
            padding: h,
            margin: h,
            perspective: h,
          });
        var l,
          u,
          c,
          d,
          p,
          f,
          m = /(?:\d|\-\d|\.\d|\-\.\d)+/g,
          v = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,
          g = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,
          y = /[^\d\-\.]/g,
          x = /(?:\d|\-|\+|=|#|\.)*/g,
          _ = /opacity *= *([^)]*)/,
          b = /opacity:([^;]*)/,
          w = /alpha\(opacity *=.+?\)/i,
          T = /^(rgb|hsl)/,
          S = /([A-Z])/g,
          E = /-([a-z])/gi,
          A = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,
          C = function (t, e) {
            return e.toUpperCase();
          },
          M = /(?:Left|Right|Width)/i,
          R = /(M11|M12|M21|M22)=[\d\-\.e]+/gi,
          P = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,
          O = /,(?=[^\)]*(?:\(|$))/gi,
          D = Math.PI / 180,
          F = 180 / Math.PI,
          L = {},
          k = document,
          I = k.createElement("div"),
          B = k.createElement("img"),
          N = (s._internals = { _specialProps: a }),
          U = navigator.userAgent,
          X = (function () {
            var t,
              e = U.indexOf("Android"),
              i = k.createElement("div");
            return (
              (c =
                -1 !== U.indexOf("Safari") &&
                -1 === U.indexOf("Chrome") &&
                (-1 === e || Number(U.substr(e + 8, 1)) > 3)),
              (p = c && 6 > Number(U.substr(U.indexOf("Version/") + 8, 1))),
              (d = -1 !== U.indexOf("Firefox")),
              /MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(U),
              (f = parseFloat(RegExp.$1)),
              (i.innerHTML = "<a style='top:1px;opacity:.55;'>a</a>"),
              (t = i.getElementsByTagName("a")[0]),
              t ? /^0.55/.test(t.style.opacity) : !1
            );
          })(),
          j = function (t) {
            return _.test(
              "string" == typeof t
                ? t
                : (t.currentStyle ? t.currentStyle.filter : t.style.filter) ||
                    ""
            )
              ? parseFloat(RegExp.$1) / 100
              : 1;
          },
          z = function (t) {
            window.console && void 0;
          },
          Y = "",
          W = "",
          G = function (t, e) {
            e = e || I;
            var i,
              r,
              n = e.style;
            if (void 0 !== n[t]) return t;
            for (
              t = t.charAt(0).toUpperCase() + t.substr(1),
                i = ["O", "Moz", "ms", "Ms", "Webkit"],
                r = 5;
              --r > -1 && void 0 === n[i[r] + t];

            );
            return r >= 0
              ? ((W = 3 === r ? "ms" : i[r]),
                (Y = "-" + W.toLowerCase() + "-"),
                W + t)
              : null;
          },
          H = k.defaultView ? k.defaultView.getComputedStyle : function () {},
          V = (s.getStyle = function (t, e, i, r, n) {
            var o;
            return X || "opacity" !== e
              ? (!r && t.style[e]
                  ? (o = t.style[e])
                  : (i = i || H(t, null))
                  ? ((t = i.getPropertyValue(
                      e.replace(S, "-$1").toLowerCase()
                    )),
                    (o = t || i.length ? t : i[e]))
                  : t.currentStyle && ((i = t.currentStyle), (o = i[e])),
                null == n ||
                (o && "none" !== o && "auto" !== o && "auto auto" !== o)
                  ? o
                  : n)
              : j(t);
          }),
          q = function (t, e, i, r, n) {
            if ("px" === r || !r) return i;
            if ("auto" === r || !i) return 0;
            var o,
              s = M.test(e),
              a = t,
              h = I.style,
              l = 0 > i;
            return (
              l && (i = -i),
              "%" === r && -1 !== e.indexOf("border")
                ? (o = (i / 100) * (s ? t.clientWidth : t.clientHeight))
                : ((h.cssText =
                    "border-style:solid; border-width:0; position:absolute; line-height:0;"),
                  "%" !== r && a.appendChild
                    ? (h[s ? "borderLeftWidth" : "borderTopWidth"] = i + r)
                    : ((a = t.parentNode || k.body),
                      (h[s ? "width" : "height"] = i + r)),
                  a.appendChild(I),
                  (o = parseFloat(I[s ? "offsetWidth" : "offsetHeight"])),
                  a.removeChild(I),
                  0 !== o || n || (o = q(t, e, i, r, !0))),
              l ? -o : o
            );
          },
          K = function (t, e, i) {
            if ("absolute" !== V(t, "position", i)) return 0;
            var r = "left" === e ? "Left" : "Top",
              n = V(t, "margin" + r, i);
            return (
              t["offset" + r] - (q(t, e, parseFloat(n), n.replace(x, "")) || 0)
            );
          },
          Q = function (t, e) {
            var i,
              r,
              n = {};
            if ((e = e || H(t, null)))
              if ((i = e.length))
                for (; --i > -1; )
                  n[e[i].replace(E, C)] = e.getPropertyValue(e[i]);
              else for (i in e) n[i] = e[i];
            else if ((e = t.currentStyle || t.style))
              for (i in e) n[i.replace(E, C)] = e[i];
            return (
              X || (n.opacity = j(t)),
              (r = Te(t, e, !1)),
              (n.rotation = r.rotation * F),
              (n.skewX = r.skewX * F),
              (n.scaleX = r.scaleX),
              (n.scaleY = r.scaleY),
              (n.x = r.x),
              (n.y = r.y),
              we &&
                ((n.z = r.z),
                (n.rotationX = r.rotationX * F),
                (n.rotationY = r.rotationY * F),
                (n.scaleZ = r.scaleZ)),
              n.filters && delete n.filters,
              n
            );
          },
          $ = function (t, e, i, r, n) {
            var o,
              s,
              a,
              h = {},
              l = t.style;
            for (s in i)
              "cssText" !== s &&
                "length" !== s &&
                isNaN(s) &&
                (e[s] !== (o = i[s]) || (n && n[s])) &&
                -1 === s.indexOf("Origin") &&
                ("number" == typeof o || "string" == typeof o) &&
                ((h[s] =
                  "auto" !== o || ("left" !== s && "top" !== s)
                    ? ("" !== o && "auto" !== o && "none" !== o) ||
                      "string" != typeof e[s] ||
                      "" === e[s].replace(y, "")
                      ? o
                      : 0
                    : K(t, s)),
                void 0 !== l[s] && (a = new ce(l, s, l[s], a)));
            if (r) for (s in r) "className" !== s && (h[s] = r[s]);
            return { difs: h, firstMPT: a };
          },
          J = { width: ["Left", "Right"], height: ["Top", "Bottom"] },
          Z = ["marginLeft", "marginRight", "marginTop", "marginBottom"],
          te = function (t, e, i) {
            var r = parseFloat("width" === e ? t.offsetWidth : t.offsetHeight),
              n = J[e],
              o = n.length;
            for (i = i || H(t, null); --o > -1; )
              (r -= parseFloat(V(t, "padding" + n[o], i, !0)) || 0),
                (r -= parseFloat(V(t, "border" + n[o] + "Width", i, !0)) || 0);
            return r;
          },
          ee = function (t, e) {
            (null == t || "" === t || "auto" === t || "auto auto" === t) &&
              (t = "0 0");
            var i = t.split(" "),
              r =
                -1 !== t.indexOf("left")
                  ? "0%"
                  : -1 !== t.indexOf("right")
                  ? "100%"
                  : i[0],
              n =
                -1 !== t.indexOf("top")
                  ? "0%"
                  : -1 !== t.indexOf("bottom")
                  ? "100%"
                  : i[1];
            return (
              null == n ? (n = "0") : "center" === n && (n = "50%"),
              ("center" === r || isNaN(parseFloat(r))) && (r = "50%"),
              e &&
                ((e.oxp = -1 !== r.indexOf("%")),
                (e.oyp = -1 !== n.indexOf("%")),
                (e.oxr = "=" === r.charAt(1)),
                (e.oyr = "=" === n.charAt(1)),
                (e.ox = parseFloat(r.replace(y, ""))),
                (e.oy = parseFloat(n.replace(y, "")))),
              r + " " + n + (i.length > 2 ? " " + i[2] : "")
            );
          },
          ie = function (t, e) {
            return "string" == typeof t && "=" === t.charAt(1)
              ? parseInt(t.charAt(0) + "1", 10) * parseFloat(t.substr(2))
              : parseFloat(t) - parseFloat(e);
          },
          re = function (t, e) {
            return null == t
              ? e
              : "string" == typeof t && "=" === t.charAt(1)
              ? parseInt(t.charAt(0) + "1", 10) * Number(t.substr(2)) + e
              : parseFloat(t);
          },
          ne = function (t, e, i, r) {
            var n,
              o,
              s,
              a,
              h = 1e-6;
            return (
              null == t
                ? (a = e)
                : "number" == typeof t
                ? (a = t * D)
                : ((n = 2 * Math.PI),
                  (o = t.split("_")),
                  (s =
                    Number(o[0].replace(y, "")) *
                      (-1 === t.indexOf("rad") ? D : 1) -
                    ("=" === t.charAt(1) ? 0 : e)),
                  o.length &&
                    (r && (r[i] = e + s),
                    -1 !== t.indexOf("short") &&
                      ((s %= n),
                      s !== s % (n / 2) && (s = 0 > s ? s + n : s - n)),
                    -1 !== t.indexOf("_cw") && 0 > s
                      ? (s = ((s + 9999999999 * n) % n) - (0 | (s / n)) * n)
                      : -1 !== t.indexOf("ccw") &&
                        s > 0 &&
                        (s = ((s - 9999999999 * n) % n) - (0 | (s / n)) * n)),
                  (a = e + s)),
              h > a && a > -h && (a = 0),
              a
            );
          },
          oe = {
            aqua: [0, 255, 255],
            lime: [0, 255, 0],
            silver: [192, 192, 192],
            black: [0, 0, 0],
            maroon: [128, 0, 0],
            teal: [0, 128, 128],
            blue: [0, 0, 255],
            navy: [0, 0, 128],
            white: [255, 255, 255],
            fuchsia: [255, 0, 255],
            olive: [128, 128, 0],
            yellow: [255, 255, 0],
            orange: [255, 165, 0],
            gray: [128, 128, 128],
            purple: [128, 0, 128],
            green: [0, 128, 0],
            red: [255, 0, 0],
            pink: [255, 192, 203],
            cyan: [0, 255, 255],
            transparent: [255, 255, 255, 0],
          },
          se = function (t, e, i) {
            return (
              (t = 0 > t ? t + 1 : t > 1 ? t - 1 : t),
              0 |
                (255 *
                  (1 > 6 * t
                    ? e + 6 * (i - e) * t
                    : 0.5 > t
                    ? i
                    : 2 > 3 * t
                    ? e + 6 * (i - e) * (2 / 3 - t)
                    : e) +
                  0.5)
            );
          },
          ae = function (t) {
            var e, i, r, n, o, s;
            return t && "" !== t
              ? "number" == typeof t
                ? [t >> 16, 255 & (t >> 8), 255 & t]
                : ("," === t.charAt(t.length - 1) &&
                    (t = t.substr(0, t.length - 1)),
                  oe[t]
                    ? oe[t]
                    : "#" === t.charAt(0)
                    ? (4 === t.length &&
                        ((e = t.charAt(1)),
                        (i = t.charAt(2)),
                        (r = t.charAt(3)),
                        (t = "#" + e + e + i + i + r + r)),
                      (t = parseInt(t.substr(1), 16)),
                      [t >> 16, 255 & (t >> 8), 255 & t])
                    : "hsl" === t.substr(0, 3)
                    ? ((t = t.match(m)),
                      (n = (Number(t[0]) % 360) / 360),
                      (o = Number(t[1]) / 100),
                      (s = Number(t[2]) / 100),
                      (i = 0.5 >= s ? s * (o + 1) : s + o - s * o),
                      (e = 2 * s - i),
                      t.length > 3 && (t[3] = Number(t[3])),
                      (t[0] = se(n + 1 / 3, e, i)),
                      (t[1] = se(n, e, i)),
                      (t[2] = se(n - 1 / 3, e, i)),
                      t)
                    : ((t = t.match(m) || oe.transparent),
                      (t[0] = Number(t[0])),
                      (t[1] = Number(t[1])),
                      (t[2] = Number(t[2])),
                      t.length > 3 && (t[3] = Number(t[3])),
                      t))
              : oe.black;
          },
          he = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b";
        for (h in oe) he += "|" + h + "\\b";
        he = RegExp(he + ")", "gi");
        var le = function (t, e, i, r) {
            if (null == t)
              return function (t) {
                return t;
              };
            var n,
              o = e ? (t.match(he) || [""])[0] : "",
              s = t.split(o).join("").match(g) || [],
              a = t.substr(0, t.indexOf(s[0])),
              h = ")" === t.charAt(t.length - 1) ? ")" : "",
              l = -1 !== t.indexOf(" ") ? " " : ",",
              u = s.length,
              c = u > 0 ? s[0].replace(m, "") : "";
            return u
              ? (n = e
                  ? function (t) {
                      var e, d, p, f;
                      if ("number" == typeof t) t += c;
                      else if (r && O.test(t)) {
                        for (
                          f = t.replace(O, "|").split("|"), p = 0;
                          f.length > p;
                          p++
                        )
                          f[p] = n(f[p]);
                        return f.join(",");
                      }
                      if (
                        ((e = (t.match(he) || [o])[0]),
                        (d = t.split(e).join("").match(g) || []),
                        (p = d.length),
                        u > p--)
                      )
                        for (; u > ++p; )
                          d[p] = i ? d[0 | ((p - 1) / 2)] : s[p];
                      return (
                        a +
                        d.join(l) +
                        l +
                        e +
                        h +
                        (-1 !== t.indexOf("inset") ? " inset" : "")
                      );
                    }
                  : function (t) {
                      var e, o, d;
                      if ("number" == typeof t) t += c;
                      else if (r && O.test(t)) {
                        for (
                          o = t.replace(O, "|").split("|"), d = 0;
                          o.length > d;
                          d++
                        )
                          o[d] = n(o[d]);
                        return o.join(",");
                      }
                      if (((e = t.match(g) || []), (d = e.length), u > d--))
                        for (; u > ++d; )
                          e[d] = i ? e[0 | ((d - 1) / 2)] : s[d];
                      return a + e.join(l) + h;
                    })
              : function (t) {
                  return t;
                };
          },
          ue = function (t) {
            return (
              (t = t.split(",")),
              function (e, i, r, n, o, s, a) {
                var h,
                  l = (i + "").split(" ");
                for (a = {}, h = 0; 4 > h; h++)
                  a[t[h]] = l[h] = l[h] || l[((h - 1) / 2) >> 0];
                return n.parse(e, a, o, s);
              }
            );
          },
          ce =
            ((N._setPluginRatio = function (t) {
              this.plugin.setRatio(t);
              for (
                var e,
                  i,
                  r,
                  n,
                  o = this.data,
                  s = o.proxy,
                  a = o.firstMPT,
                  h = 1e-6;
                a;

              )
                (e = s[a.v]),
                  a.r
                    ? (e = e > 0 ? 0 | (e + 0.5) : 0 | (e - 0.5))
                    : h > e && e > -h && (e = 0),
                  (a.t[a.p] = e),
                  (a = a._next);
              if (
                (o.autoRotate && (o.autoRotate.rotation = s.rotation), 1 === t)
              )
                for (a = o.firstMPT; a; ) {
                  if (((i = a.t), i.type)) {
                    if (1 === i.type) {
                      for (n = i.xs0 + i.s + i.xs1, r = 1; i.l > r; r++)
                        n += i["xn" + r] + i["xs" + (r + 1)];
                      i.e = n;
                    }
                  } else i.e = i.s + i.xs0;
                  a = a._next;
                }
            }),
            function (t, e, i, r, n) {
              (this.t = t),
                (this.p = e),
                (this.v = i),
                (this.r = n),
                r && ((r._prev = this), (this._next = r));
            }),
          de =
            ((N._parseToProxy = function (t, e, i, r, n, o) {
              var s,
                a,
                h,
                l,
                u,
                c = r,
                d = {},
                p = {},
                f = i._transform,
                m = L;
              for (
                i._transform = null,
                  L = e,
                  r = u = i.parse(t, e, r, n),
                  L = m,
                  o &&
                    ((i._transform = f),
                    c && ((c._prev = null), c._prev && (c._prev._next = null)));
                r && r !== c;

              ) {
                if (
                  1 >= r.type &&
                  ((a = r.p),
                  (p[a] = r.s + r.c),
                  (d[a] = r.s),
                  o || ((l = new ce(r, "s", a, l, r.r)), (r.c = 0)),
                  1 === r.type)
                )
                  for (s = r.l; --s > 0; )
                    (h = "xn" + s),
                      (a = r.p + "_" + h),
                      (p[a] = r.data[h]),
                      (d[a] = r[h]),
                      o || (l = new ce(r, h, a, l, r.rxp[h]));
                r = r._next;
              }
              return { proxy: d, end: p, firstMPT: l, pt: u };
            }),
            (N.CSSPropTween = function (t, e, r, n, s, a, h, l, u, c, d) {
              (this.t = t),
                (this.p = e),
                (this.s = r),
                (this.c = n),
                (this.n = h || "css_" + e),
                t instanceof de || o.push(this.n),
                (this.r = l),
                (this.type = a || 0),
                u && ((this.pr = u), (i = !0)),
                (this.b = void 0 === c ? r : c),
                (this.e = void 0 === d ? r + n : d),
                s && ((this._next = s), (s._prev = this));
            })),
          pe = (s.parseComplex = function (t, e, i, r, n, o, s, a, h, u) {
            (s = new de(t, e, 0, 0, s, u ? 2 : 1, null, !1, a, i, r)),
              (r += "");
            var c,
              d,
              p,
              f,
              g,
              y,
              x,
              _,
              b,
              w,
              S,
              E,
              A = i.split(", ").join(",").split(" "),
              C = r.split(", ").join(",").split(" "),
              M = A.length,
              R = l !== !1;
            for (
              (-1 !== r.indexOf(",") || -1 !== i.indexOf(",")) &&
                ((A = A.join(" ").replace(O, ", ").split(" ")),
                (C = C.join(" ").replace(O, ", ").split(" ")),
                (M = A.length)),
                M !== C.length && ((A = (o || "").split(" ")), (M = A.length)),
                s.plugin = h,
                s.setRatio = u,
                c = 0;
              M > c;
              c++
            )
              if (((f = A[c]), (g = C[c]), (_ = parseFloat(f)), _ || 0 === _))
                s.appendXtra(
                  "",
                  _,
                  ie(g, _),
                  g.replace(v, ""),
                  R && -1 !== g.indexOf("px"),
                  !0
                );
              else if (n && ("#" === f.charAt(0) || oe[f] || T.test(f)))
                (E = "," === g.charAt(g.length - 1) ? ")," : ")"),
                  (f = ae(f)),
                  (g = ae(g)),
                  (b = f.length + g.length > 6),
                  b && !X && 0 === g[3]
                    ? ((s["xs" + s.l] += s.l ? " transparent" : "transparent"),
                      (s.e = s.e.split(C[c]).join("transparent")))
                    : (X || (b = !1),
                      s
                        .appendXtra(
                          b ? "rgba(" : "rgb(",
                          f[0],
                          g[0] - f[0],
                          ",",
                          !0,
                          !0
                        )
                        .appendXtra("", f[1], g[1] - f[1], ",", !0)
                        .appendXtra("", f[2], g[2] - f[2], b ? "," : E, !0),
                      b &&
                        ((f = 4 > f.length ? 1 : f[3]),
                        s.appendXtra(
                          "",
                          f,
                          (4 > g.length ? 1 : g[3]) - f,
                          E,
                          !1
                        )));
              else if ((y = f.match(m))) {
                if (((x = g.match(v)), !x || x.length !== y.length)) return s;
                for (p = 0, d = 0; y.length > d; d++)
                  (S = y[d]),
                    (w = f.indexOf(S, p)),
                    s.appendXtra(
                      f.substr(p, w - p),
                      Number(S),
                      ie(x[d], S),
                      "",
                      R && "px" === f.substr(w + S.length, 2),
                      0 === d
                    ),
                    (p = w + S.length);
                s["xs" + s.l] += f.substr(p);
              } else s["xs" + s.l] += s.l ? " " + f : f;
            if (-1 !== r.indexOf("=") && s.data) {
              for (E = s.xs0 + s.data.s, c = 1; s.l > c; c++)
                E += s["xs" + c] + s.data["xn" + c];
              s.e = E + s["xs" + c];
            }
            return s.l || ((s.type = -1), (s.xs0 = s.e)), s.xfirst || s;
          }),
          fe = 9;
        for (h = de.prototype, h.l = h.pr = 0; --fe > 0; )
          (h["xn" + fe] = 0), (h["xs" + fe] = "");
        (h.xs0 = ""),
          (h._next =
            h._prev =
            h.xfirst =
            h.data =
            h.plugin =
            h.setRatio =
            h.rxp =
              null),
          (h.appendXtra = function (t, e, i, r, n, o) {
            var s = this,
              a = s.l;
            return (
              (s["xs" + a] += o && a ? " " + t : t || ""),
              i || 0 === a || s.plugin
                ? (s.l++,
                  (s.type = s.setRatio ? 2 : 1),
                  (s["xs" + s.l] = r || ""),
                  a > 0
                    ? ((s.data["xn" + a] = e + i),
                      (s.rxp["xn" + a] = n),
                      (s["xn" + a] = e),
                      s.plugin ||
                        ((s.xfirst = new de(
                          s,
                          "xn" + a,
                          e,
                          i,
                          s.xfirst || s,
                          0,
                          s.n,
                          n,
                          s.pr
                        )),
                        (s.xfirst.xs0 = 0)),
                      s)
                    : ((s.data = { s: e + i }),
                      (s.rxp = {}),
                      (s.s = e),
                      (s.c = i),
                      (s.r = n),
                      s))
                : ((s["xs" + a] += e + (r || "")), s)
            );
          });
        var me = function (t, e) {
            (e = e || {}),
              (this.p = e.prefix ? G(t) || t : t),
              (a[t] = a[this.p] = this),
              (this.format =
                e.formatter ||
                le(e.defaultValue, e.color, e.collapsible, e.multi)),
              e.parser && (this.parse = e.parser),
              (this.clrs = e.color),
              (this.multi = e.multi),
              (this.keyword = e.keyword),
              (this.dflt = e.defaultValue),
              (this.pr = e.priority || 0);
          },
          ve = (N._registerComplexSpecialProp = function (t, e, i) {
            "object" != typeof e && (e = { parser: i });
            var r,
              n,
              o = t.split(","),
              s = e.defaultValue;
            for (i = i || [s], r = 0; o.length > r; r++)
              (e.prefix = 0 === r && e.prefix),
                (e.defaultValue = i[r] || s),
                (n = new me(o[r], e));
          }),
          ge = function (t) {
            if (!a[t]) {
              var e = t.charAt(0).toUpperCase() + t.substr(1) + "Plugin";
              ve(t, {
                parser: function (t, i, r, n, o, s, h) {
                  var l = (window.GreenSockGlobals || window).com.greensock
                    .plugins[e];
                  return l
                    ? (l._cssRegister(), a[r].parse(t, i, r, n, o, s, h))
                    : (z("Error: " + e + " js file not loaded."), o);
                },
              });
            }
          };
        (h = me.prototype),
          (h.parseComplex = function (t, e, i, r, n, o) {
            var s,
              a,
              h,
              l,
              u,
              c,
              d = this.keyword;
            if (
              (this.multi &&
                (O.test(i) || O.test(e)
                  ? ((a = e.replace(O, "|").split("|")),
                    (h = i.replace(O, "|").split("|")))
                  : d && ((a = [e]), (h = [i]))),
              h)
            ) {
              for (
                l = h.length > a.length ? h.length : a.length, s = 0;
                l > s;
                s++
              )
                (e = a[s] = a[s] || this.dflt),
                  (i = h[s] = h[s] || this.dflt),
                  d &&
                    ((u = e.indexOf(d)),
                    (c = i.indexOf(d)),
                    u !== c && ((i = -1 === c ? h : a), (i[s] += " " + d)));
              (e = a.join(", ")), (i = h.join(", "));
            }
            return pe(t, this.p, e, i, this.clrs, this.dflt, r, this.pr, n, o);
          }),
          (h.parse = function (t, e, i, r, o, s) {
            return this.parseComplex(
              t.style,
              this.format(V(t, this.p, n, !1, this.dflt)),
              this.format(e),
              o,
              s
            );
          }),
          (s.registerSpecialProp = function (t, e, i) {
            ve(t, {
              parser: function (t, r, n, o, s, a) {
                var h = new de(t, n, 0, 0, s, 2, n, !1, i);
                return (h.plugin = a), (h.setRatio = e(t, r, o._tween, n)), h;
              },
              priority: i,
            });
          });
        var ye =
            "scaleX,scaleY,scaleZ,x,y,z,skewX,rotation,rotationX,rotationY,perspective".split(
              ","
            ),
          xe = G("transform"),
          _e = Y + "transform",
          be = G("transformOrigin"),
          we = null !== G("perspective"),
          Te = function (t, e, i) {
            var r,
              n,
              o,
              a,
              h,
              l,
              u,
              c,
              d,
              p,
              f,
              m,
              v,
              g = i ? t._gsTransform || { skewY: 0 } : { skewY: 0 },
              y = 0 > g.scaleX,
              x = 2e-5,
              _ = 1e5,
              b = -Math.PI + 1e-4,
              w = Math.PI - 1e-4,
              T = we
                ? parseFloat(V(t, be, e, !1, "0 0 0").split(" ")[2]) ||
                  g.zOrigin ||
                  0
                : 0;
            if (xe) r = V(t, _e, e, !0);
            else if (t.currentStyle)
              if (((r = t.currentStyle.filter.match(R)), r && 4 === r.length))
                r = [
                  r[0].substr(4),
                  Number(r[2].substr(4)),
                  Number(r[1].substr(4)),
                  r[3].substr(4),
                  g.x || 0,
                  g.y || 0,
                ].join(",");
              else {
                if (null != g.x) return g;
                r = "";
              }
            for (
              n = (r || "").match(/(?:\-|\b)[\d\-\.e]+\b/gi) || [],
                o = n.length;
              --o > -1;

            )
              (a = Number(n[o])),
                (n[o] = (h = a - (a |= 0))
                  ? (0 | (h * _ + (0 > h ? -0.5 : 0.5))) / _ + a
                  : a);
            if (16 === n.length) {
              var S = n[8],
                E = n[9],
                A = n[10],
                C = n[12],
                M = n[13],
                P = n[14];
              if (
                (g.zOrigin &&
                  ((P = -g.zOrigin),
                  (C = S * P - n[12]),
                  (M = E * P - n[13]),
                  (P = A * P + g.zOrigin - n[14])),
                !i || null == g.rotationX)
              ) {
                var O,
                  D,
                  F,
                  L,
                  k,
                  I,
                  B,
                  N = n[0],
                  U = n[1],
                  X = n[2],
                  j = n[3],
                  z = n[4],
                  Y = n[5],
                  W = n[6],
                  G = n[7],
                  H = n[11],
                  q = (g.rotationX = Math.atan2(W, A)),
                  K = b > q || q > w;
                q &&
                  ((L = Math.cos(-q)),
                  (k = Math.sin(-q)),
                  (O = z * L + S * k),
                  (D = Y * L + E * k),
                  (F = W * L + A * k),
                  (S = z * -k + S * L),
                  (E = Y * -k + E * L),
                  (A = W * -k + A * L),
                  (H = G * -k + H * L),
                  (z = O),
                  (Y = D),
                  (W = F)),
                  (q = g.rotationY = Math.atan2(S, N)),
                  q &&
                    ((I = b > q || q > w),
                    (L = Math.cos(-q)),
                    (k = Math.sin(-q)),
                    (O = N * L - S * k),
                    (D = U * L - E * k),
                    (F = X * L - A * k),
                    (E = U * k + E * L),
                    (A = X * k + A * L),
                    (H = j * k + H * L),
                    (N = O),
                    (U = D),
                    (X = F)),
                  (q = g.rotation = Math.atan2(U, Y)),
                  q &&
                    ((B = b > q || q > w),
                    (L = Math.cos(-q)),
                    (k = Math.sin(-q)),
                    (N = N * L + z * k),
                    (D = U * L + Y * k),
                    (Y = U * -k + Y * L),
                    (W = X * -k + W * L),
                    (U = D)),
                  B && K
                    ? (g.rotation = g.rotationX = 0)
                    : B && I
                    ? (g.rotation = g.rotationY = 0)
                    : I && K && (g.rotationY = g.rotationX = 0),
                  (g.scaleX = (0 | (Math.sqrt(N * N + U * U) * _ + 0.5)) / _),
                  (g.scaleY = (0 | (Math.sqrt(Y * Y + E * E) * _ + 0.5)) / _),
                  (g.scaleZ = (0 | (Math.sqrt(W * W + A * A) * _ + 0.5)) / _),
                  (g.skewX = 0),
                  (g.perspective = H ? 1 / (0 > H ? -H : H) : 0),
                  (g.x = C),
                  (g.y = M),
                  (g.z = P);
              }
            } else if (
              !(
                (we &&
                  0 !== n.length &&
                  g.x === n[4] &&
                  g.y === n[5] &&
                  (g.rotationX || g.rotationY)) ||
                (void 0 !== g.x && "none" === V(t, "display", e))
              )
            ) {
              var Q = n.length >= 6,
                $ = Q ? n[0] : 1,
                J = n[1] || 0,
                Z = n[2] || 0,
                te = Q ? n[3] : 1;
              (g.x = n[4] || 0),
                (g.y = n[5] || 0),
                (l = Math.sqrt($ * $ + J * J)),
                (u = Math.sqrt(te * te + Z * Z)),
                (c = $ || J ? Math.atan2(J, $) : g.rotation || 0),
                (d = Z || te ? Math.atan2(Z, te) + c : g.skewX || 0),
                (p = l - Math.abs(g.scaleX || 0)),
                (f = u - Math.abs(g.scaleY || 0)),
                Math.abs(d) > Math.PI / 2 &&
                  Math.abs(d) < 1.5 * Math.PI &&
                  (y
                    ? ((l *= -1),
                      (d += 0 >= c ? Math.PI : -Math.PI),
                      (c += 0 >= c ? Math.PI : -Math.PI))
                    : ((u *= -1), (d += 0 >= d ? Math.PI : -Math.PI))),
                (m = (c - g.rotation) % Math.PI),
                (v = (d - g.skewX) % Math.PI),
                (void 0 === g.skewX ||
                  p > x ||
                  -x > p ||
                  f > x ||
                  -x > f ||
                  (m > b && w > m && !1 | (m * _)) ||
                  (v > b && w > v && !1 | (v * _))) &&
                  ((g.scaleX = l),
                  (g.scaleY = u),
                  (g.rotation = c),
                  (g.skewX = d)),
                we &&
                  ((g.rotationX = g.rotationY = g.z = 0),
                  (g.perspective =
                    parseFloat(s.defaultTransformPerspective) || 0),
                  (g.scaleZ = 1));
            }
            g.zOrigin = T;
            for (o in g) x > g[o] && g[o] > -x && (g[o] = 0);
            return i && (t._gsTransform = g), g;
          },
          Se = function (t) {
            var e,
              i,
              r = this.data,
              n = -r.rotation,
              o = n + r.skewX,
              s = 1e5,
              a = (0 | (Math.cos(n) * r.scaleX * s)) / s,
              h = (0 | (Math.sin(n) * r.scaleX * s)) / s,
              l = (0 | (Math.sin(o) * -r.scaleY * s)) / s,
              u = (0 | (Math.cos(o) * r.scaleY * s)) / s,
              c = this.t.style,
              d = this.t.currentStyle;
            if (d) {
              (i = h), (h = -l), (l = -i), (e = d.filter), (c.filter = "");
              var p,
                m,
                v = this.t.offsetWidth,
                g = this.t.offsetHeight,
                y = "absolute" !== d.position,
                b =
                  "progid:DXImageTransform.Microsoft.Matrix(M11=" +
                  a +
                  ", M12=" +
                  h +
                  ", M21=" +
                  l +
                  ", M22=" +
                  u,
                w = r.x,
                T = r.y;
              if (
                (null != r.ox &&
                  ((p = (r.oxp ? 0.01 * v * r.ox : r.ox) - v / 2),
                  (m = (r.oyp ? 0.01 * g * r.oy : r.oy) - g / 2),
                  (w += p - (p * a + m * h)),
                  (T += m - (p * l + m * u))),
                y)
              )
                (p = v / 2),
                  (m = g / 2),
                  (b +=
                    ", Dx=" +
                    (p - (p * a + m * h) + w) +
                    ", Dy=" +
                    (m - (p * l + m * u) + T) +
                    ")");
              else {
                var S,
                  E,
                  A,
                  C = 8 > f ? 1 : -1;
                for (
                  p = r.ieOffsetX || 0,
                    m = r.ieOffsetY || 0,
                    r.ieOffsetX = Math.round(
                      (v - ((0 > a ? -a : a) * v + (0 > h ? -h : h) * g)) / 2 +
                        w
                    ),
                    r.ieOffsetY = Math.round(
                      (g - ((0 > u ? -u : u) * g + (0 > l ? -l : l) * v)) / 2 +
                        T
                    ),
                    fe = 0;
                  4 > fe;
                  fe++
                )
                  (E = Z[fe]),
                    (S = d[E]),
                    (i =
                      -1 !== S.indexOf("px")
                        ? parseFloat(S)
                        : q(this.t, E, parseFloat(S), S.replace(x, "")) || 0),
                    (A =
                      i !== r[E]
                        ? 2 > fe
                          ? -r.ieOffsetX
                          : -r.ieOffsetY
                        : 2 > fe
                        ? p - r.ieOffsetX
                        : m - r.ieOffsetY),
                    (c[E] =
                      (r[E] = Math.round(
                        i - A * (0 === fe || 2 === fe ? 1 : C)
                      )) + "px");
                b += ", sizingMethod='auto expand')";
              }
              (c.filter =
                -1 !== e.indexOf("DXImageTransform.Microsoft.Matrix(")
                  ? e.replace(P, b)
                  : b + " " + e),
                (0 === t || 1 === t) &&
                  1 === a &&
                  0 === h &&
                  0 === l &&
                  1 === u &&
                  ((y && -1 === b.indexOf("Dx=0, Dy=0")) ||
                    (_.test(e) && 100 !== parseFloat(RegExp.$1)) ||
                    (-1 === e.indexOf("gradient(") &&
                      c.removeAttribute("filter")));
            }
          },
          Ee = function () {
            var t,
              e,
              i,
              r,
              n,
              o,
              s,
              a,
              h,
              l = this.data,
              u = this.t.style,
              c = l.perspective,
              p = l.scaleX,
              f = 0,
              m = 0,
              v = 0,
              g = 0,
              y = l.scaleY,
              x = 0,
              _ = 0,
              b = 0,
              w = 0,
              T = l.scaleZ,
              S = 0,
              E = 0,
              A = 0,
              C = c ? -1 / c : 0,
              M = l.rotation,
              R = l.zOrigin,
              P = 1e5;
            d &&
              ((s = u.top
                ? "top"
                : u.bottom
                ? "bottom"
                : parseFloat(V(this.t, "top", null, !1))
                ? "bottom"
                : "top"),
              (i = V(this.t, s, null, !1)),
              (a = parseFloat(i) || 0),
              (h = i.substr((a + "").length) || "px"),
              (l._ffFix = !l._ffFix),
              (u[s] = (l._ffFix ? a + 0.05 : a - 0.05) + h)),
              (M || l.skewX) &&
                ((i = p * Math.cos(M)),
                (r = y * Math.sin(M)),
                (M -= l.skewX),
                (f = p * -Math.sin(M)),
                (y *= Math.cos(M)),
                (p = i),
                (g = r)),
              (M = l.rotationY),
              M &&
                ((t = Math.cos(M)),
                (e = Math.sin(M)),
                (i = p * t),
                (r = g * t),
                (n = T * -e),
                (o = C * -e),
                (m = p * e),
                (x = g * e),
                (T *= t),
                (C *= t),
                (p = i),
                (g = r),
                (b = n),
                (E = o)),
              (M = l.rotationX),
              M &&
                ((t = Math.cos(M)),
                (e = Math.sin(M)),
                (i = f * t + m * e),
                (r = y * t + x * e),
                (n = w * t + T * e),
                (o = A * t + C * e),
                (m = f * -e + m * t),
                (x = y * -e + x * t),
                (T = w * -e + T * t),
                (C = A * -e + C * t),
                (f = i),
                (y = r),
                (w = n),
                (A = o)),
              R && ((S -= R), (v = m * S), (_ = x * S), (S = T * S + R)),
              (v = (i = (v += l.x) - (v |= 0))
                ? (0 | (i * P + (0 > i ? -0.5 : 0.5))) / P + v
                : v),
              (_ = (i = (_ += l.y) - (_ |= 0))
                ? (0 | (i * P + (0 > i ? -0.5 : 0.5))) / P + _
                : _),
              (S = (i = (S += l.z) - (S |= 0))
                ? (0 | (i * P + (0 > i ? -0.5 : 0.5))) / P + S
                : S),
              (u[xe] =
                "matrix3d(" +
                [
                  (0 | (p * P)) / P,
                  (0 | (g * P)) / P,
                  (0 | (b * P)) / P,
                  (0 | (E * P)) / P,
                  (0 | (f * P)) / P,
                  (0 | (y * P)) / P,
                  (0 | (w * P)) / P,
                  (0 | (A * P)) / P,
                  (0 | (m * P)) / P,
                  (0 | (x * P)) / P,
                  (0 | (T * P)) / P,
                  (0 | (C * P)) / P,
                  v,
                  _,
                  S,
                  c ? 1 + -S / c : 1,
                ].join(",") +
                ")");
          },
          Ae = function () {
            var t,
              e,
              i,
              r,
              n,
              o,
              s,
              a,
              h,
              l = this.data,
              u = this.t,
              c = u.style;
            d &&
              ((t = c.top
                ? "top"
                : c.bottom
                ? "bottom"
                : parseFloat(V(u, "top", null, !1))
                ? "bottom"
                : "top"),
              (e = V(u, t, null, !1)),
              (i = parseFloat(e) || 0),
              (r = e.substr((i + "").length) || "px"),
              (l._ffFix = !l._ffFix),
              (c[t] = (l._ffFix ? i + 0.05 : i - 0.05) + r)),
              l.rotation || l.skewX
                ? ((n = l.rotation),
                  (o = n - l.skewX),
                  (s = 1e5),
                  (a = l.scaleX * s),
                  (h = l.scaleY * s),
                  (c[xe] =
                    "matrix(" +
                    (0 | (Math.cos(n) * a)) / s +
                    "," +
                    (0 | (Math.sin(n) * a)) / s +
                    "," +
                    (0 | (Math.sin(o) * -h)) / s +
                    "," +
                    (0 | (Math.cos(o) * h)) / s +
                    "," +
                    l.x +
                    "," +
                    l.y +
                    ")"))
                : (c[xe] =
                    "matrix(" +
                    l.scaleX +
                    ",0,0," +
                    l.scaleY +
                    "," +
                    l.x +
                    "," +
                    l.y +
                    ")");
          };
        ve(
          "transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,transformPerspective,directionalRotation",
          {
            parser: function (t, e, i, r, o, s, a) {
              if (r._transform) return o;
              var h,
                l,
                u,
                c,
                d,
                p,
                f,
                m = (r._transform = Te(t, n, !0)),
                v = t.style,
                g = 1e-6,
                y = ye.length,
                x = a,
                _ = {};
              if ("string" == typeof x.transform && xe)
                (u = v.cssText),
                  (v[xe] = x.transform),
                  (v.display = "block"),
                  (h = Te(t, null, !1)),
                  (v.cssText = u);
              else if ("object" == typeof x) {
                if (
                  ((h = {
                    scaleX: re(null != x.scaleX ? x.scaleX : x.scale, m.scaleX),
                    scaleY: re(null != x.scaleY ? x.scaleY : x.scale, m.scaleY),
                    scaleZ: re(null != x.scaleZ ? x.scaleZ : x.scale, m.scaleZ),
                    x: re(x.x, m.x),
                    y: re(x.y, m.y),
                    z: re(x.z, m.z),
                    perspective: re(x.transformPerspective, m.perspective),
                  }),
                  (f = x.directionalRotation),
                  null != f)
                )
                  if ("object" == typeof f) for (u in f) x[u] = f[u];
                  else x.rotation = f;
                (h.rotation = ne(
                  "rotation" in x
                    ? x.rotation
                    : "shortRotation" in x
                    ? x.shortRotation + "_short"
                    : "rotationZ" in x
                    ? x.rotationZ
                    : m.rotation * F,
                  m.rotation,
                  "rotation",
                  _
                )),
                  we &&
                    ((h.rotationX = ne(
                      "rotationX" in x
                        ? x.rotationX
                        : "shortRotationX" in x
                        ? x.shortRotationX + "_short"
                        : m.rotationX * F || 0,
                      m.rotationX,
                      "rotationX",
                      _
                    )),
                    (h.rotationY = ne(
                      "rotationY" in x
                        ? x.rotationY
                        : "shortRotationY" in x
                        ? x.shortRotationY + "_short"
                        : m.rotationY * F || 0,
                      m.rotationY,
                      "rotationY",
                      _
                    ))),
                  (h.skewX = null == x.skewX ? m.skewX : ne(x.skewX, m.skewX)),
                  (h.skewY = null == x.skewY ? m.skewY : ne(x.skewY, m.skewY)),
                  (l = h.skewY - m.skewY) &&
                    ((h.skewX += l), (h.rotation += l));
              }
              for (
                d =
                  m.z ||
                  m.rotationX ||
                  m.rotationY ||
                  h.z ||
                  h.rotationX ||
                  h.rotationY ||
                  h.perspective,
                  d || null == x.scale || (h.scaleZ = 1);
                --y > -1;

              )
                (i = ye[y]),
                  (c = h[i] - m[i]),
                  (c > g || -g > c || null != L[i]) &&
                    ((p = !0),
                    (o = new de(m, i, m[i], c, o)),
                    i in _ && (o.e = _[i]),
                    (o.xs0 = 0),
                    (o.plugin = s),
                    r._overwriteProps.push(o.n));
              return (
                (c = x.transformOrigin),
                (c || (we && d && m.zOrigin)) &&
                  (xe
                    ? ((p = !0),
                      (c = (c || V(t, i, n, !1, "50% 50%")) + ""),
                      (i = be),
                      (o = new de(v, i, 0, 0, o, -1, "css_transformOrigin")),
                      (o.b = v[i]),
                      (o.plugin = s),
                      we
                        ? ((u = m.zOrigin),
                          (c = c.split(" ")),
                          (m.zOrigin =
                            (c.length > 2 ? parseFloat(c[2]) : u) || 0),
                          (o.xs0 =
                            o.e =
                            v[i] =
                              c[0] + " " + (c[1] || "50%") + " 0px"),
                          (o = new de(m, "zOrigin", 0, 0, o, -1, o.n)),
                          (o.b = u),
                          (o.xs0 = o.e = m.zOrigin))
                        : (o.xs0 = o.e = v[i] = c))
                    : ee(c + "", m)),
                p &&
                  (r._transformType = d || 3 === this._transformType ? 3 : 2),
                o
              );
            },
            prefix: !0,
          }
        ),
          ve("boxShadow", {
            defaultValue: "0px 0px 0px 0px #999",
            prefix: !0,
            color: !0,
            multi: !0,
            keyword: "inset",
          }),
          ve("borderRadius", {
            defaultValue: "0px",
            parser: function (t, e, i, o, s) {
              e = this.format(e);
              var a,
                h,
                l,
                u,
                c,
                d,
                p,
                f,
                m,
                v,
                g,
                y,
                x,
                _,
                b,
                w,
                T = [
                  "borderTopLeftRadius",
                  "borderTopRightRadius",
                  "borderBottomRightRadius",
                  "borderBottomLeftRadius",
                ],
                S = t.style;
              for (
                m = parseFloat(t.offsetWidth),
                  v = parseFloat(t.offsetHeight),
                  a = e.split(" "),
                  h = 0;
                T.length > h;
                h++
              )
                this.p.indexOf("border") && (T[h] = G(T[h])),
                  (c = u = V(t, T[h], n, !1, "0px")),
                  -1 !== c.indexOf(" ") &&
                    ((u = c.split(" ")), (c = u[0]), (u = u[1])),
                  (d = l = a[h]),
                  (p = parseFloat(c)),
                  (y = c.substr((p + "").length)),
                  (x = "=" === d.charAt(1)),
                  x
                    ? ((f = parseInt(d.charAt(0) + "1", 10)),
                      (d = d.substr(2)),
                      (f *= parseFloat(d)),
                      (g = d.substr((f + "").length - (0 > f ? 1 : 0)) || ""))
                    : ((f = parseFloat(d)), (g = d.substr((f + "").length))),
                  "" === g && (g = r[i] || y),
                  g !== y &&
                    ((_ = q(t, "borderLeft", p, y)),
                    (b = q(t, "borderTop", p, y)),
                    "%" === g
                      ? ((c = 100 * (_ / m) + "%"), (u = 100 * (b / v) + "%"))
                      : "em" === g
                      ? ((w = q(t, "borderLeft", 1, "em")),
                        (c = _ / w + "em"),
                        (u = b / w + "em"))
                      : ((c = _ + "px"), (u = b + "px")),
                    x &&
                      ((d = parseFloat(c) + f + g),
                      (l = parseFloat(u) + f + g))),
                  (s = pe(S, T[h], c + " " + u, d + " " + l, !1, "0px", s));
              return s;
            },
            prefix: !0,
            formatter: le("0px 0px 0px 0px", !1, !0),
          }),
          ve("backgroundPosition", {
            defaultValue: "0 0",
            parser: function (t, e, i, r, o, s) {
              var a,
                h,
                l,
                u,
                c,
                d,
                p = "background-position",
                m = n || H(t, null),
                v = this.format(
                  (m
                    ? f
                      ? m.getPropertyValue(p + "-x") +
                        " " +
                        m.getPropertyValue(p + "-y")
                      : m.getPropertyValue(p)
                    : t.currentStyle.backgroundPositionX +
                      " " +
                      t.currentStyle.backgroundPositionY) || "0 0"
                ),
                g = this.format(e);
              if (
                (-1 !== v.indexOf("%")) != (-1 !== g.indexOf("%")) &&
                ((d = V(t, "backgroundImage").replace(A, "")),
                d && "none" !== d)
              ) {
                for (
                  a = v.split(" "),
                    h = g.split(" "),
                    B.setAttribute("src", d),
                    l = 2;
                  --l > -1;

                )
                  (v = a[l]),
                    (u = -1 !== v.indexOf("%")),
                    u !== (-1 !== h[l].indexOf("%")) &&
                      ((c =
                        0 === l
                          ? t.offsetWidth - B.width
                          : t.offsetHeight - B.height),
                      (a[l] = u
                        ? (parseFloat(v) / 100) * c + "px"
                        : 100 * (parseFloat(v) / c) + "%"));
                v = a.join(" ");
              }
              return this.parseComplex(t.style, v, g, o, s);
            },
            formatter: ee,
          }),
          ve("backgroundSize", { defaultValue: "0 0", formatter: ee }),
          ve("perspective", { defaultValue: "0px", prefix: !0 }),
          ve("perspectiveOrigin", { defaultValue: "50% 50%", prefix: !0 }),
          ve("transformStyle", { prefix: !0 }),
          ve("backfaceVisibility", { prefix: !0 }),
          ve("margin", {
            parser: ue("marginTop,marginRight,marginBottom,marginLeft"),
          }),
          ve("padding", {
            parser: ue("paddingTop,paddingRight,paddingBottom,paddingLeft"),
          }),
          ve("clip", {
            defaultValue: "rect(0px,0px,0px,0px)",
            parser: function (t, e, i, r, o, s) {
              var a, h, l;
              return (
                9 > f
                  ? ((h = t.currentStyle),
                    (l = 8 > f ? " " : ","),
                    (a =
                      "rect(" +
                      h.clipTop +
                      l +
                      h.clipRight +
                      l +
                      h.clipBottom +
                      l +
                      h.clipLeft +
                      ")"),
                    (e = this.format(e).split(",").join(l)))
                  : ((a = this.format(V(t, this.p, n, !1, this.dflt))),
                    (e = this.format(e))),
                this.parseComplex(t.style, a, e, o, s)
              );
            },
          }),
          ve("textShadow", {
            defaultValue: "0px 0px 0px #999",
            color: !0,
            multi: !0,
          }),
          ve("autoRound,strictUnits", {
            parser: function (t, e, i, r, n) {
              return n;
            },
          }),
          ve("border", {
            defaultValue: "0px solid #000",
            parser: function (t, e, i, r, o, s) {
              return this.parseComplex(
                t.style,
                this.format(
                  V(t, "borderTopWidth", n, !1, "0px") +
                    " " +
                    V(t, "borderTopStyle", n, !1, "solid") +
                    " " +
                    V(t, "borderTopColor", n, !1, "#000")
                ),
                this.format(e),
                o,
                s
              );
            },
            color: !0,
            formatter: function (t) {
              var e = t.split(" ");
              return (
                e[0] +
                " " +
                (e[1] || "solid") +
                " " +
                (t.match(he) || ["#000"])[0]
              );
            },
          }),
          ve("float,cssFloat,styleFloat", {
            parser: function (t, e, i, r, n) {
              var o = t.style,
                s = "cssFloat" in o ? "cssFloat" : "styleFloat";
              return new de(o, s, 0, 0, n, -1, i, !1, 0, o[s], e);
            },
          });
        var Ce = function (t) {
          var e,
            i = this.t,
            r = i.filter,
            n = 0 | (this.s + this.c * t);
          100 === n &&
            (-1 === r.indexOf("atrix(") && -1 === r.indexOf("radient(")
              ? (i.removeAttribute("filter"), (e = !V(this.data, "filter")))
              : ((i.filter = r.replace(w, "")), (e = !0))),
            e ||
              (this.xn1 && (i.filter = r = r || "alpha(opacity=100)"),
              -1 === r.indexOf("opacity")
                ? (i.filter += " alpha(opacity=" + n + ")")
                : (i.filter = r.replace(_, "opacity=" + n)));
        };
        ve("opacity,alpha,autoAlpha", {
          defaultValue: "1",
          parser: function (t, e, i, r, o, s) {
            var a,
              h = parseFloat(V(t, "opacity", n, !1, "1")),
              l = t.style;
            return (
              (e = parseFloat(e)),
              "autoAlpha" === i &&
                ((a = V(t, "visibility", n)),
                1 === h && "hidden" === a && 0 !== e && (h = 0),
                (o = new de(
                  l,
                  "visibility",
                  0,
                  0,
                  o,
                  -1,
                  null,
                  !1,
                  0,
                  0 !== h ? "visible" : "hidden",
                  0 === e ? "hidden" : "visible"
                )),
                (o.xs0 = "visible"),
                r._overwriteProps.push(o.n)),
              X
                ? (o = new de(l, "opacity", h, e - h, o))
                : ((o = new de(l, "opacity", 100 * h, 100 * (e - h), o)),
                  (o.xn1 = "autoAlpha" === i ? 1 : 0),
                  (l.zoom = 1),
                  (o.type = 2),
                  (o.b = "alpha(opacity=" + o.s + ")"),
                  (o.e = "alpha(opacity=" + (o.s + o.c) + ")"),
                  (o.data = t),
                  (o.plugin = s),
                  (o.setRatio = Ce)),
              o
            );
          },
        });
        var Me = function (t, e) {
            e &&
              (t.removeProperty
                ? t.removeProperty(e.replace(S, "-$1").toLowerCase())
                : t.removeAttribute(e));
          },
          Re = function (t) {
            if (((this.t._gsClassPT = this), 1 === t || 0 === t)) {
              this.t.className = 0 === t ? this.b : this.e;
              for (var e = this.data, i = this.t.style; e; )
                e.v ? (i[e.p] = e.v) : Me(i, e.p), (e = e._next);
              1 === t &&
                this.t._gsClassPT === this &&
                (this.t._gsClassPT = null);
            } else this.t.className !== this.e && (this.t.className = this.e);
          };
        ve("className", {
          parser: function (t, e, r, o, s, a, h) {
            var l,
              u,
              c,
              d,
              p,
              f = t.className,
              m = t.style.cssText;
            if (
              ((s = o._classNamePT = new de(t, r, 0, 0, s, 2)),
              (s.setRatio = Re),
              (s.pr = -11),
              (i = !0),
              (s.b = f),
              (u = Q(t, n)),
              (c = t._gsClassPT))
            ) {
              for (d = {}, p = c.data; p; ) (d[p.p] = 1), (p = p._next);
              c.setRatio(1);
            }
            return (
              (t._gsClassPT = s),
              (s.e =
                "=" !== e.charAt(1)
                  ? e
                  : f.replace(RegExp("\\s*\\b" + e.substr(2) + "\\b"), "") +
                    ("+" === e.charAt(0) ? " " + e.substr(2) : "")),
              o._tween._duration &&
                ((t.className = s.e),
                (l = $(t, u, Q(t), h, d)),
                (t.className = f),
                (s.data = l.firstMPT),
                (t.style.cssText = m),
                (s = s.xfirst = o.parse(t, l.difs, s, a))),
              s
            );
          },
        });
        var Pe = function (t) {
          if (
            (1 === t || 0 === t) &&
            this.data._totalTime === this.data._totalDuration
          )
            for (
              var e,
                i = "all" === this.e,
                r = this.t.style,
                n = i ? r.cssText.split(";") : this.e.split(","),
                o = n.length,
                s = a.transform.parse;
              --o > -1;

            )
              (e = n[o]),
                i && (e = e.substr(0, e.indexOf(":")).split(" ").join("")),
                a[e] && (e = a[e].parse === s ? xe : a[e].p),
                Me(r, e);
        };
        for (
          ve("clearProps", {
            parser: function (t, e, r, n, o) {
              return (
                (o = new de(t, r, 0, 0, o, 2)),
                (o.setRatio = Pe),
                (o.e = e),
                (o.pr = -10),
                (o.data = n._tween),
                (i = !0),
                o
              );
            },
          }),
            h = "bezier,throwProps,physicsProps,physics2D".split(","),
            fe = h.length;
          fe--;

        )
          ge(h[fe]);
        (h = s.prototype),
          (h._firstPT = null),
          (h._onInitTween = function (t, e, a) {
            if (!t.nodeType) return !1;
            (this._target = t),
              (this._tween = a),
              (this._vars = e),
              (l = e.autoRound),
              (i = !1),
              (r = e.suffixMap || s.suffixMap),
              (n = H(t, "")),
              (o = this._overwriteProps);
            var h,
              d,
              f,
              m,
              v,
              g,
              y,
              x,
              _,
              w = t.style;
            if (
              (u &&
                "" === w.zIndex &&
                ((h = V(t, "zIndex", n)),
                ("auto" === h || "" === h) && (w.zIndex = 0)),
              "string" == typeof e &&
                ((m = w.cssText),
                (h = Q(t, n)),
                (w.cssText = m + ";" + e),
                (h = $(t, h, Q(t)).difs),
                !X && b.test(e) && (h.opacity = parseFloat(RegExp.$1)),
                (e = h),
                (w.cssText = m)),
              (this._firstPT = d = this.parse(t, e, null)),
              this._transformType)
            ) {
              for (
                _ = 3 === this._transformType,
                  xe
                    ? c &&
                      ((u = !0),
                      "" === w.zIndex &&
                        ((y = V(t, "zIndex", n)),
                        ("auto" === y || "" === y) && (w.zIndex = 0)),
                      p &&
                        (w.WebkitBackfaceVisibility =
                          this._vars.WebkitBackfaceVisibility ||
                          (_ ? "visible" : "hidden")))
                    : (w.zoom = 1),
                  f = d;
                f && f._next;

              )
                f = f._next;
              (x = new de(t, "transform", 0, 0, null, 2)),
                this._linkCSSP(x, null, f),
                (x.setRatio = _ && we ? Ee : xe ? Ae : Se),
                (x.data = this._transform || Te(t, n, !0)),
                o.pop();
            }
            if (i) {
              for (; d; ) {
                for (g = d._next, f = m; f && f.pr > d.pr; ) f = f._next;
                (d._prev = f ? f._prev : v) ? (d._prev._next = d) : (m = d),
                  (d._next = f) ? (f._prev = d) : (v = d),
                  (d = g);
              }
              this._firstPT = m;
            }
            return !0;
          }),
          (h.parse = function (t, e, i, o) {
            var s,
              h,
              u,
              c,
              d,
              p,
              f,
              m,
              v,
              g,
              y = t.style;
            for (s in e)
              (p = e[s]),
                (h = a[s]),
                h
                  ? (i = h.parse(t, p, s, this, i, o, e))
                  : ((d = V(t, s, n) + ""),
                    (v = "string" == typeof p),
                    "color" === s ||
                    "fill" === s ||
                    "stroke" === s ||
                    -1 !== s.indexOf("Color") ||
                    (v && T.test(p))
                      ? (v ||
                          ((p = ae(p)),
                          (p =
                            (p.length > 3 ? "rgba(" : "rgb(") +
                            p.join(",") +
                            ")")),
                        (i = pe(y, s, d, p, !0, "transparent", i, 0, o)))
                      : !v || (-1 === p.indexOf(" ") && -1 === p.indexOf(","))
                      ? ((u = parseFloat(d)),
                        (f = u || 0 === u ? d.substr((u + "").length) : ""),
                        ("" === d || "auto" === d) &&
                          ("width" === s || "height" === s
                            ? ((u = te(t, s, n)), (f = "px"))
                            : "left" === s || "top" === s
                            ? ((u = K(t, s, n)), (f = "px"))
                            : ((u = "opacity" !== s ? 0 : 1), (f = ""))),
                        (g = v && "=" === p.charAt(1)),
                        g
                          ? ((c = parseInt(p.charAt(0) + "1", 10)),
                            (p = p.substr(2)),
                            (c *= parseFloat(p)),
                            (m = p.replace(x, "")))
                          : ((c = parseFloat(p)),
                            (m = v ? p.substr((c + "").length) || "" : "")),
                        "" === m && (m = r[s] || f),
                        (p = c || 0 === c ? (g ? c + u : c) + m : e[s]),
                        f !== m &&
                          "" !== m &&
                          (c || 0 === c) &&
                          (u || 0 === u) &&
                          ((u = q(t, s, u, f)),
                          "%" === m
                            ? ((u /= q(t, s, 100, "%") / 100),
                              u > 100 && (u = 100),
                              e.strictUnits !== !0 && (d = u + "%"))
                            : "em" === m
                            ? (u /= q(t, s, 1, "em"))
                            : ((c = q(t, s, c, m)), (m = "px")),
                          g && (c || 0 === c) && (p = c + u + m)),
                        g && (c += u),
                        (!u && 0 !== u) || (!c && 0 !== c)
                          ? p || ("NaN" != p + "" && null != p)
                            ? ((i = new de(
                                y,
                                s,
                                c || u || 0,
                                0,
                                i,
                                -1,
                                "css_" + s,
                                !1,
                                0,
                                d,
                                p
                              )),
                              (i.xs0 =
                                "none" !== p ||
                                ("display" !== s && -1 === s.indexOf("Style"))
                                  ? p
                                  : d))
                            : z("invalid " + s + " tween value: " + e[s])
                          : ((i = new de(
                              y,
                              s,
                              u,
                              c - u,
                              i,
                              0,
                              "css_" + s,
                              l !== !1 && ("px" === m || "zIndex" === s),
                              0,
                              d,
                              p
                            )),
                            (i.xs0 = m)))
                      : (i = pe(y, s, d, p, !0, null, i, 0, o))),
                o && i && !i.plugin && (i.plugin = o);
            return i;
          }),
          (h.setRatio = function (t) {
            var e,
              i,
              r,
              n = this._firstPT,
              o = 1e-6;
            if (
              1 !== t ||
              (this._tween._time !== this._tween._duration &&
                0 !== this._tween._time)
            )
              if (
                t ||
                (this._tween._time !== this._tween._duration &&
                  0 !== this._tween._time) ||
                this._tween._rawPrevTime === -1e-6
              )
                for (; n; ) {
                  if (
                    ((e = n.c * t + n.s),
                    n.r
                      ? (e = e > 0 ? 0 | (e + 0.5) : 0 | (e - 0.5))
                      : o > e && e > -o && (e = 0),
                    n.type)
                  )
                    if (1 === n.type)
                      if (((r = n.l), 2 === r))
                        n.t[n.p] = n.xs0 + e + n.xs1 + n.xn1 + n.xs2;
                      else if (3 === r)
                        n.t[n.p] =
                          n.xs0 + e + n.xs1 + n.xn1 + n.xs2 + n.xn2 + n.xs3;
                      else if (4 === r)
                        n.t[n.p] =
                          n.xs0 +
                          e +
                          n.xs1 +
                          n.xn1 +
                          n.xs2 +
                          n.xn2 +
                          n.xs3 +
                          n.xn3 +
                          n.xs4;
                      else if (5 === r)
                        n.t[n.p] =
                          n.xs0 +
                          e +
                          n.xs1 +
                          n.xn1 +
                          n.xs2 +
                          n.xn2 +
                          n.xs3 +
                          n.xn3 +
                          n.xs4 +
                          n.xn4 +
                          n.xs5;
                      else {
                        for (i = n.xs0 + e + n.xs1, r = 1; n.l > r; r++)
                          i += n["xn" + r] + n["xs" + (r + 1)];
                        n.t[n.p] = i;
                      }
                    else
                      -1 === n.type
                        ? (n.t[n.p] = n.xs0)
                        : n.setRatio && n.setRatio(t);
                  else n.t[n.p] = e + n.xs0;
                  n = n._next;
                }
              else
                for (; n; )
                  2 !== n.type ? (n.t[n.p] = n.b) : n.setRatio(t),
                    (n = n._next);
            else
              for (; n; )
                2 !== n.type ? (n.t[n.p] = n.e) : n.setRatio(t), (n = n._next);
          }),
          (h._enableTransforms = function (t) {
            this._transformType = t || 3 === this._transformType ? 3 : 2;
          }),
          (h._linkCSSP = function (t, e, i, r) {
            return (
              t &&
                (e && (e._prev = t),
                t._next && (t._next._prev = t._prev),
                i
                  ? (i._next = t)
                  : r || null !== this._firstPT || (this._firstPT = t),
                t._prev
                  ? (t._prev._next = t._next)
                  : this._firstPT === t && (this._firstPT = t._next),
                (t._next = e),
                (t._prev = i)),
              t
            );
          }),
          (h._kill = function (e) {
            var i,
              r,
              n,
              o = e;
            if (e.css_autoAlpha || e.css_alpha) {
              o = {};
              for (r in e) o[r] = e[r];
              (o.css_opacity = 1), o.css_autoAlpha && (o.css_visibility = 1);
            }
            return (
              e.css_className &&
                (i = this._classNamePT) &&
                ((n = i.xfirst),
                n && n._prev
                  ? this._linkCSSP(n._prev, i._next, n._prev._prev)
                  : n === this._firstPT && (this._firstPT = i._next),
                i._next && this._linkCSSP(i._next, i._next._next, n._prev),
                (this._classNamePT = null)),
              t.prototype._kill.call(this, o)
            );
          });
        var Oe = function (t, e, i) {
          var r, n, o, s;
          if (t.slice) for (n = t.length; --n > -1; ) Oe(t[n], e, i);
          else
            for (r = t.childNodes, n = r.length; --n > -1; )
              (o = r[n]),
                (s = o.type),
                o.style && (e.push(Q(o)), i && i.push(o)),
                (1 !== s && 9 !== s && 11 !== s) ||
                  !o.childNodes.length ||
                  Oe(o, e, i);
        };
        return (
          (s.cascadeTo = function (t, i, r) {
            var n,
              o,
              s,
              a = e.to(t, i, r),
              h = [a],
              l = [],
              u = [],
              c = [],
              d = e._internals.reservedProps;
            for (
              t = a._targets || a.target,
                Oe(t, l, c),
                a.render(i, !0),
                Oe(t, u),
                a.render(0, !0),
                a._enabled(!0),
                n = c.length;
              --n > -1;

            )
              if (((o = $(c[n], l[n], u[n])), o.firstMPT)) {
                o = o.difs;
                for (s in r) d[s] && (o[s] = r[s]);
                h.push(e.to(c[n], i, o));
              }
            return h;
          }),
          t.activate([s]),
          s
        );
      },
      !0
    );
  }),
  window._gsDefine && window._gsQueue.pop()(),
  define("CSSPACK", function () {}),
  !(function () {
    var t = {},
      e = null,
      i = !0,
      r = !1;
    if ("undefined" != typeof AudioContext) e = new AudioContext();
    else if ("undefined" != typeof webkitAudioContext)
      e = new webkitAudioContext();
    else if ("undefined" != typeof Audio) {
      i = !1;
      try {
        new Audio();
      } catch (n) {
        r = !0;
      }
    } else (i = !1), (r = !0);
    if (i) {
      var o = void 0 === e.createGain ? e.createGainNode() : e.createGain();
      (o.gain.value = 1), o.connect(e.destination);
    }
    var s = function () {
      (this._volume = 1),
        (this._muted = !1),
        (this.usingWebAudio = i),
        (this._howls = []);
    };
    s.prototype = {
      volume: function (t) {
        var e = this;
        if (((t = parseFloat(t)), t && t >= 0 && 1 >= t)) {
          (e._volume = t), i && (o.gain.value = t);
          for (var r in e._howls)
            if (e._howls.hasOwnProperty(r) && e._howls[r]._webAudio === !1)
              for (var n = 0; n < e._howls[r]._audioNode.length; n++)
                e._howls[r]._audioNode[n].volume =
                  e._howls[r]._volume * e._volume;
          return e;
        }
        return i ? o.gain.value : e._volume;
      },
      mute: function () {
        return this._setMuted(!0), this;
      },
      unmute: function () {
        return this._setMuted(!1), this;
      },
      _setMuted: function (t) {
        var e = this;
        (e._muted = t), i && (o.gain.value = t ? 0 : e._volume);
        for (var r in e._howls)
          if (e._howls.hasOwnProperty(r) && e._howls[r]._webAudio === !1)
            for (var n = 0; n < e._howls[r]._audioNode.length; n++)
              e._howls[r]._audioNode[n].muted = t;
      },
    };
    var a = new s(),
      h = null;
    if (!r) {
      h = new Audio();
      var l = {
        mp3: !!h.canPlayType("audio/mpeg;").replace(/^no$/, ""),
        opus: !!h.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, ""),
        ogg: !!h.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""),
        wav: !!h.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""),
        m4a: !!(
          h.canPlayType("audio/x-m4a;") || h.canPlayType("audio/aac;")
        ).replace(/^no$/, ""),
        weba: !!h
          .canPlayType('audio/webm; codecs="vorbis"')
          .replace(/^no$/, ""),
      };
    }
    var u = function (t) {
      var e = this;
      (e._autoplay = t.autoplay || !1),
        (e._buffer = t.buffer || !1),
        (e._duration = t.duration || 0),
        (e._format = t.format || null),
        (e._loop = t.loop || !1),
        (e._loaded = !1),
        (e._sprite = t.sprite || {}),
        (e._src = t.src || ""),
        (e._pos3d = t.pos3d || [0, 0, -0.5]),
        (e._volume = t.volume || 1),
        (e._urls = t.urls || []),
        (e._rate = t.rate || 1),
        (e._onload = [t.onload || function () {}]),
        (e._onloaderror = [t.onloaderror || function () {}]),
        (e._onend = [t.onend || function () {}]),
        (e._onpause = [t.onpause || function () {}]),
        (e._onplay = [t.onplay || function () {}]),
        (e._onendTimer = []),
        (e._webAudio = i && !e._buffer),
        (e._audioNode = []),
        e._webAudio && e._setupAudioNode(),
        a._howls.push(e),
        e.load();
    };
    if (
      ((u.prototype = {
        load: function () {
          var e = this,
            i = null;
          if (r) return void e.on("loaderror");
          for (var n = 0; n < e._urls.length; n++) {
            var o, s;
            if (e._format) o = e._format;
            else {
              if (
                ((s = e._urls[n].toLowerCase().split("?")[0]),
                (o = s.match(/.+\.([^?]+)(\?|$)/)),
                (o = o && o.length >= 2 ? o : s.match(/data\:audio\/([^?]+);/)),
                !o)
              )
                return void e.on("loaderror");
              o = o[1];
            }
            if (l[o]) {
              i = e._urls[n];
              break;
            }
          }
          if (!i) return void e.on("loaderror");
          if (((e._src = i), e._webAudio)) c(e, i);
          else {
            var h = new Audio();
            e._audioNode.push(h),
              (h.src = i),
              (h._pos = 0),
              (h.preload = "auto"),
              (h.volume = a._muted ? 0 : e._volume * a.volume()),
              (t[i] = e);
            var u = function () {
              (e._duration = h.duration),
                0 === Object.getOwnPropertyNames(e._sprite).length &&
                  (e._sprite = { _default: [0, 1e3 * e._duration] }),
                e._loaded || ((e._loaded = !0), e.on("load")),
                e._autoplay && e.play(),
                h.removeEventListener("canplaythrough", u, !1);
            };
            h.addEventListener("canplaythrough", u, !1), h.load();
          }
          return e;
        },
        urls: function (t) {
          var e = this;
          return t
            ? (e.stop(),
              (e._urls = "string" == typeof t ? [t] : t),
              (e._loaded = !1),
              e.load(),
              e)
            : e._urls;
        },
        play: function (t, i) {
          var r = this;
          return (
            "function" == typeof t && (i = t),
            (t && "function" != typeof t) || (t = "_default"),
            r._loaded
              ? r._sprite[t]
                ? (r._inactiveNode(function (n) {
                    n._sprite = t;
                    var o,
                      s = n._pos > 0 ? n._pos : r._sprite[t][0] / 1e3,
                      h = r._sprite[t][1] / 1e3 - n._pos,
                      l = !(!r._loop && !r._sprite[t][2]),
                      u =
                        "string" == typeof i
                          ? i
                          : Math.round(Date.now() * Math.random()) + "";
                    if (
                      ((function () {
                        var e = { id: u, sprite: t, loop: l };
                        (o = setTimeout(function () {
                          !r._webAudio &&
                            l &&
                            r.stop(e.id, e.timer).play(t, e.id),
                            r._webAudio &&
                              !l &&
                              (r._nodeById(e.id).paused = !0),
                            r._webAudio || l || r.stop(e.id, e.timer),
                            r.on("end", u);
                        }, 1e3 * h)),
                          r._onendTimer.push(o),
                          (e.timer = r._onendTimer[r._onendTimer.length - 1]);
                      })(),
                      r._webAudio)
                    ) {
                      var c = r._sprite[t][0] / 1e3,
                        d = r._sprite[t][1] / 1e3;
                      (n.id = u),
                        (n.paused = !1),
                        p(r, [l, c, d], u),
                        (r._playStart = e.currentTime),
                        (n.gain.value = r._volume),
                        void 0 === n.bufferSource.start
                          ? n.bufferSource.noteGrainOn(0, s, h)
                          : n.bufferSource.start(0, s, h);
                    } else {
                      if (4 !== n.readyState)
                        return (
                          r._clearEndTimer(o),
                          (function () {
                            var e = r,
                              o = t,
                              s = i,
                              a = n,
                              h = function () {
                                e.play(o, s),
                                  a.removeEventListener(
                                    "canplaythrough",
                                    h,
                                    !1
                                  );
                              };
                            a.addEventListener("canplaythrough", h, !1);
                          })(),
                          r
                        );
                      (n.id = u),
                        (n.currentTime = s),
                        (n.muted = a._muted),
                        (n.volume = r._volume * a.volume()),
                        setTimeout(function () {
                          n.play();
                        }, 0);
                    }
                    return r.on("play"), "function" == typeof i && i(u), r;
                  }),
                  r)
                : ("function" == typeof i && i(), r)
              : (r.on("load", function () {
                  r.play(t, i);
                }),
                r)
          );
        },
        pause: function (t, e) {
          var i = this;
          if (!i._loaded)
            return (
              i.on("play", function () {
                i.pause(t);
              }),
              i
            );
          i._clearEndTimer(e || 0);
          var r = t ? i._nodeById(t) : i._activeNode();
          if (r)
            if (((r._pos = i.pos(null, t)), i._webAudio)) {
              if (!r.bufferSource) return i;
              (r.paused = !0),
                void 0 === r.bufferSource.stop
                  ? r.bufferSource.noteOff(0)
                  : r.bufferSource.stop(0);
            } else r.pause();
          return i.on("pause"), i;
        },
        stop: function (t, e) {
          var i = this;
          if (!i._loaded)
            return (
              i.on("play", function () {
                i.stop(t);
              }),
              i
            );
          i._clearEndTimer(e || 0);
          var r = t ? i._nodeById(t) : i._activeNode();
          if (r)
            if (((r._pos = 0), i._webAudio)) {
              if (!r.bufferSource) return i;
              (r.paused = !0),
                void 0 === r.bufferSource.stop
                  ? r.bufferSource.noteOff(0)
                  : r.bufferSource.stop(0);
            } else r.pause(), (r.currentTime = 0);
          return i;
        },
        mute: function (t) {
          var e = this;
          if (!e._loaded)
            return (
              e.on("play", function () {
                e.mute(t);
              }),
              e
            );
          var i = t ? e._nodeById(t) : e._activeNode();
          return i && (e._webAudio ? (i.gain.value = 0) : (i.volume = 0)), e;
        },
        unmute: function (t) {
          var e = this;
          if (!e._loaded)
            return (
              e.on("play", function () {
                e.unmute(t);
              }),
              e
            );
          var i = t ? e._nodeById(t) : e._activeNode();
          return (
            i &&
              (e._webAudio
                ? (i.gain.value = e._volume)
                : (i.volume = e._volume)),
            e
          );
        },
        volume: function (t, e) {
          var i = this;
          if (((t = parseFloat(t)), t >= 0 && 1 >= t)) {
            if (((i._volume = t), !i._loaded))
              return (
                i.on("play", function () {
                  i.volume(t, e);
                }),
                i
              );
            var r = e ? i._nodeById(e) : i._activeNode();
            return (
              r &&
                (i._webAudio
                  ? (r.gain.value = t)
                  : (r.volume = t * a.volume())),
              i
            );
          }
          return i._volume;
        },
        loop: function (t) {
          var e = this;
          return "boolean" == typeof t ? ((e._loop = t), e) : e._loop;
        },
        sprite: function (t) {
          var e = this;
          return "object" == typeof t ? ((e._sprite = t), e) : e._sprite;
        },
        pos: function (t, i) {
          var r = this;
          if (!r._loaded)
            return (
              r.on("load", function () {
                r.pos(t);
              }),
              "number" == typeof t ? r : r._pos || 0
            );
          t = parseFloat(t);
          var n = i ? r._nodeById(i) : r._activeNode();
          if (n)
            return r._webAudio
              ? t >= 0
                ? ((n._pos = t), r.pause(i).play(n._sprite, i), r)
                : n._pos + (e.currentTime - r._playStart)
              : t >= 0
              ? ((n.currentTime = t), r)
              : n.currentTime;
          if (t >= 0) return r;
          for (var o = 0; o < r._audioNode.length; o++)
            if (r._audioNode[o].paused && 4 === r._audioNode[o].readyState)
              return r._webAudio
                ? r._audioNode[o]._pos
                : r._audioNode[o].currentTime;
        },
        pos3d: function (t, e, i, r) {
          var n = this;
          if (
            ((e = void 0 !== e && e ? e : 0),
            (i = void 0 !== i && i ? i : -0.5),
            !n._loaded)
          )
            return (
              n.on("play", function () {
                n.pos3d(t, e, i, r);
              }),
              n
            );
          if (!(t >= 0 || 0 > t)) return n._pos3d;
          if (n._webAudio) {
            var o = r ? n._nodeById(r) : n._activeNode();
            o && ((n._pos3d = [t, e, i]), o.panner.setPosition(t, e, i));
          }
          return n;
        },
        fade: function (t, e, i, r, n) {
          var o = this,
            s = Math.abs(t - e),
            a = t > e ? "down" : "up",
            h = s / 0.01,
            l = i / h;
          if (!o._loaded)
            return (
              o.on("load", function () {
                o.fade(t, e, i, r, n);
              }),
              o
            );
          o.volume(t, n);
          for (var u = 1; h >= u; u++)
            !(function () {
              var t = o._volume + ("up" === a ? 0.01 : -0.01) * u,
                i = Math.round(1e3 * t) / 1e3,
                s = e;
              setTimeout(function () {
                o.volume(i, n), i === s && r && r();
              }, l * u);
            })();
        },
        fadeIn: function (t, e, i) {
          return this.volume(0).play().fade(0, t, e, i);
        },
        fadeOut: function (t, e, i, r) {
          var n = this;
          return n.fade(
            n._volume,
            t,
            e,
            function () {
              i && i(), n.pause(r), n.on("end");
            },
            r
          );
        },
        _nodeById: function (t) {
          for (
            var e = this, i = e._audioNode[0], r = 0;
            r < e._audioNode.length;
            r++
          )
            if (e._audioNode[r].id === t) {
              i = e._audioNode[r];
              break;
            }
          return i;
        },
        _activeNode: function () {
          for (var t = this, e = null, i = 0; i < t._audioNode.length; i++)
            if (!t._audioNode[i].paused) {
              e = t._audioNode[i];
              break;
            }
          return t._drainPool(), e;
        },
        _inactiveNode: function (t) {
          for (var e = this, i = null, r = 0; r < e._audioNode.length; r++)
            if (e._audioNode[r].paused && 4 === e._audioNode[r].readyState) {
              t(e._audioNode[r]), (i = !0);
              break;
            }
          if ((e._drainPool(), !i)) {
            var n;
            e._webAudio
              ? ((n = e._setupAudioNode()), t(n))
              : (e.load(),
                (n = e._audioNode[e._audioNode.length - 1]),
                n.addEventListener("loadedmetadata", function () {
                  t(n);
                }));
          }
        },
        _drainPool: function () {
          var t,
            e = this,
            i = 0;
          for (t = 0; t < e._audioNode.length; t++)
            e._audioNode[t].paused && i++;
          for (t = e._audioNode.length - 1; t >= 0 && !(5 >= i); t--)
            e._audioNode[t].paused &&
              (e._webAudio && e._audioNode[t].disconnect(0),
              i--,
              e._audioNode.splice(t, 1));
        },
        _clearEndTimer: function (t) {
          var e = this,
            i = e._onendTimer.indexOf(t);
          (i = i >= 0 ? i : 0),
            e._onendTimer[i] &&
              (clearTimeout(e._onendTimer[i]), e._onendTimer.splice(i, 1));
        },
        _setupAudioNode: function () {
          var t = this,
            i = t._audioNode,
            r = t._audioNode.length;
          return (
            (i[r] =
              void 0 === e.createGain ? e.createGainNode() : e.createGain()),
            (i[r].gain.value = t._volume),
            (i[r].paused = !0),
            (i[r]._pos = 0),
            (i[r].readyState = 4),
            i[r].connect(o),
            (i[r].panner = e.createPanner()),
            i[r].panner.setPosition(t._pos3d[0], t._pos3d[1], t._pos3d[2]),
            i[r].panner.connect(i[r]),
            i[r]
          );
        },
        on: function (t, e) {
          var i = this,
            r = i["_on" + t];
          if ("function" == typeof e) r.push(e);
          else
            for (var n = 0; n < r.length; n++)
              e ? r[n].call(i, e) : r[n].call(i);
          return i;
        },
        off: function (t, e) {
          for (
            var i = this, r = i["_on" + t], n = "" + e, o = 0;
            o < r.length;
            o++
          )
            if (n === "" + r[o]) {
              r.splice(o, 1);
              break;
            }
          return i;
        },
        unload: function () {
          for (
            var e = this, i = e._audioNode, r = 0;
            r < e._audioNode.length;
            r++
          )
            e.stop(i[r].id), e._webAudio ? i[r].disconnect(0) : (i[r].src = "");
          var n = a._howls.indexOf(e);
          n && a._howls.splice(n, 1), delete t[e._src], (e = null);
        },
      }),
      i)
    )
      var c = function (i, r) {
          if (r in t) (i._duration = t[r].duration), d(i);
          else {
            var n = new XMLHttpRequest();
            n.open("GET", r, !0),
              (n.responseType = "arraybuffer"),
              (n.onload = function () {
                e.decodeAudioData(n.response, function (e) {
                  e && ((t[r] = e), d(i, e));
                });
              }),
              (n.onerror = function () {
                i._webAudio &&
                  ((i._buffer = !0),
                  (i._webAudio = !1),
                  (i._audioNode = []),
                  delete i._gainNode,
                  i.load());
              });
            try {
              n.send();
            } catch (o) {
              n.onerror();
            }
          }
        },
        d = function (t, e) {
          (t._duration = e ? e.duration : t._duration),
            0 === Object.getOwnPropertyNames(t._sprite).length &&
              (t._sprite = { _default: [0, 1e3 * t._duration] }),
            t._loaded || ((t._loaded = !0), t.on("load")),
            t._autoplay && t.play();
        },
        p = function (i, r, n) {
          var o = i._nodeById(n);
          (o.bufferSource = e.createBufferSource()),
            (o.bufferSource.buffer = t[i._src]),
            o.bufferSource.connect(o.panner),
            (o.bufferSource.loop = r[0]),
            r[0] &&
              ((o.bufferSource.loopStart = r[1]),
              (o.bufferSource.loopEnd = r[1] + r[2])),
            (o.bufferSource.playbackRate.value = i._rate);
        };
    "function" == typeof define &&
      define.amd &&
      define("HOWLER", [], function () {
        return { Howler: a, Howl: u };
      }),
      (window.Howler = a),
      (window.Howl = u);
  })(),
  !(function (t) {
    if ("object" == typeof exports && "undefined" != typeof module)
      module.exports = t();
    else if ("function" == typeof define && define.amd) define("PIXI", [], t);
    else {
      var e;
      "undefined" != typeof window
        ? (e = window)
        : "undefined" != typeof global
        ? (e = global)
        : "undefined" != typeof self && (e = self),
        (e.PIXI = t());
    }
  })(function () {
    var t;
    return (function e(t, i, r) {
      function n(s, a) {
        if (!i[s]) {
          if (!t[s]) {
            var h = "function" == typeof require && require;
            if (!a && h) return h(s, !0);
            if (o) return o(s, !0);
            var l = new Error("Cannot find module '" + s + "'");
            throw ((l.code = "MODULE_NOT_FOUND"), l);
          }
          var u = (i[s] = { exports: {} });
          t[s][0].call(
            u.exports,
            function (e) {
              var i = t[s][1][e];
              return n(i ? i : e);
            },
            u,
            u.exports,
            e,
            t,
            i,
            r
          );
        }
        return i[s].exports;
      }
      for (
        var o = "function" == typeof require && require, s = 0;
        s < r.length;
        s++
      )
        n(r[s]);
      return n;
    })(
      {
        1: [
          function (t, e) {
            var i = (e.exports = t("./core"));
            (i.extras = t("./extras")),
              (i.filters = t("./filters")),
              (i.interaction = t("./interaction")),
              (i.loaders = t("./loaders")),
              (i.spine = t("./spine")),
              (i.text = t("./text")),
              (i.Text = i.text.Text),
              (i.Point = i.math.Point),
              (i.Rectangle = i.math.Rectangle),
              (i.Matrix = i.math.Matrix),
              (i.blendModes = i.CONST.BLEND_MODES);
            var r = 0;
            (i.Circle = i.math.Circle),
              (i.loaders.Loader.prototype.addList = function (t) {
                for (var e = 0; e < t.length; e++) this.add(r++ + "_", t[e]);
              }),
              (i.Sprite.prototype.setTexture = function (t) {
                this.texture = t;
              }),
              (i.Text.prototype.setText = function (t) {
                this.text = t;
              });
          },
          {
            "./core": 20,
            "./extras": 76,
            "./filters": 90,
            "./interaction": 105,
            "./loaders": 109,
            "./spine": 115,
            "./text": 118,
          },
        ],
        2: [
          function (e, i) {
            (function (e) {
              !(function () {
                function r(t) {
                  var e = !1;
                  return function () {
                    if (e) throw new Error("Callback was already called.");
                    (e = !0), t.apply(n, arguments);
                  };
                }
                var n,
                  o,
                  s = {};
                (n = this),
                  null != n && (o = n.async),
                  (s.noConflict = function () {
                    return (n.async = o), s;
                  });
                var a = Object.prototype.toString,
                  h =
                    Array.isArray ||
                    function (t) {
                      return "[object Array]" === a.call(t);
                    },
                  l = function (t, e) {
                    if (t.forEach) return t.forEach(e);
                    for (var i = 0; i < t.length; i += 1) e(t[i], i, t);
                  },
                  u = function (t, e) {
                    if (t.map) return t.map(e);
                    var i = [];
                    return (
                      l(t, function (t, r, n) {
                        i.push(e(t, r, n));
                      }),
                      i
                    );
                  },
                  c = function (t, e, i) {
                    return t.reduce
                      ? t.reduce(e, i)
                      : (l(t, function (t, r, n) {
                          i = e(i, t, r, n);
                        }),
                        i);
                  },
                  d = function (t) {
                    if (Object.keys) return Object.keys(t);
                    var e = [];
                    for (var i in t) t.hasOwnProperty(i) && e.push(i);
                    return e;
                  };
                "undefined" != typeof e && e.nextTick
                  ? ((s.nextTick = e.nextTick),
                    (s.setImmediate =
                      "undefined" != typeof setImmediate
                        ? function (t) {
                            setImmediate(t);
                          }
                        : s.nextTick))
                  : "function" == typeof setImmediate
                  ? ((s.nextTick = function (t) {
                      setImmediate(t);
                    }),
                    (s.setImmediate = s.nextTick))
                  : ((s.nextTick = function (t) {
                      setTimeout(t, 0);
                    }),
                    (s.setImmediate = s.nextTick)),
                  (s.each = function (t, e, i) {
                    function n(e) {
                      e
                        ? (i(e), (i = function () {}))
                        : ((o += 1), o >= t.length && i());
                    }
                    if (((i = i || function () {}), !t.length)) return i();
                    var o = 0;
                    l(t, function (t) {
                      e(t, r(n));
                    });
                  }),
                  (s.forEach = s.each),
                  (s.eachSeries = function (t, e, i) {
                    if (((i = i || function () {}), !t.length)) return i();
                    var r = 0,
                      n = function () {
                        e(t[r], function (e) {
                          e
                            ? (i(e), (i = function () {}))
                            : ((r += 1), r >= t.length ? i() : n());
                        });
                      };
                    n();
                  }),
                  (s.forEachSeries = s.eachSeries),
                  (s.eachLimit = function (t, e, i, r) {
                    var n = p(e);
                    n.apply(null, [t, i, r]);
                  }),
                  (s.forEachLimit = s.eachLimit);
                var p = function (t) {
                    return function (e, i, r) {
                      if (((r = r || function () {}), !e.length || 0 >= t))
                        return r();
                      var n = 0,
                        o = 0,
                        s = 0;
                      !(function a() {
                        if (n >= e.length) return r();
                        for (; t > s && o < e.length; )
                          (o += 1),
                            (s += 1),
                            i(e[o - 1], function (t) {
                              t
                                ? (r(t), (r = function () {}))
                                : ((n += 1),
                                  (s -= 1),
                                  n >= e.length ? r() : a());
                            });
                      })();
                    };
                  },
                  f = function (t) {
                    return function () {
                      var e = Array.prototype.slice.call(arguments);
                      return t.apply(null, [s.each].concat(e));
                    };
                  },
                  m = function (t, e) {
                    return function () {
                      var i = Array.prototype.slice.call(arguments);
                      return e.apply(null, [p(t)].concat(i));
                    };
                  },
                  v = function (t) {
                    return function () {
                      var e = Array.prototype.slice.call(arguments);
                      return t.apply(null, [s.eachSeries].concat(e));
                    };
                  },
                  g = function (t, e, i, r) {
                    if (
                      ((e = u(e, function (t, e) {
                        return { index: e, value: t };
                      })),
                      r)
                    ) {
                      var n = [];
                      t(
                        e,
                        function (t, e) {
                          i(t.value, function (i, r) {
                            (n[t.index] = r), e(i);
                          });
                        },
                        function (t) {
                          r(t, n);
                        }
                      );
                    } else
                      t(e, function (t, e) {
                        i(t.value, function (t) {
                          e(t);
                        });
                      });
                  };
                (s.map = f(g)),
                  (s.mapSeries = v(g)),
                  (s.mapLimit = function (t, e, i, r) {
                    return y(e)(t, i, r);
                  });
                var y = function (t) {
                  return m(t, g);
                };
                (s.reduce = function (t, e, i, r) {
                  s.eachSeries(
                    t,
                    function (t, r) {
                      i(e, t, function (t, i) {
                        (e = i), r(t);
                      });
                    },
                    function (t) {
                      r(t, e);
                    }
                  );
                }),
                  (s.inject = s.reduce),
                  (s.foldl = s.reduce),
                  (s.reduceRight = function (t, e, i, r) {
                    var n = u(t, function (t) {
                      return t;
                    }).reverse();
                    s.reduce(n, e, i, r);
                  }),
                  (s.foldr = s.reduceRight);
                var x = function (t, e, i, r) {
                  var n = [];
                  (e = u(e, function (t, e) {
                    return { index: e, value: t };
                  })),
                    t(
                      e,
                      function (t, e) {
                        i(t.value, function (i) {
                          i && n.push(t), e();
                        });
                      },
                      function () {
                        r(
                          u(
                            n.sort(function (t, e) {
                              return t.index - e.index;
                            }),
                            function (t) {
                              return t.value;
                            }
                          )
                        );
                      }
                    );
                };
                (s.filter = f(x)),
                  (s.filterSeries = v(x)),
                  (s.select = s.filter),
                  (s.selectSeries = s.filterSeries);
                var _ = function (t, e, i, r) {
                  var n = [];
                  (e = u(e, function (t, e) {
                    return { index: e, value: t };
                  })),
                    t(
                      e,
                      function (t, e) {
                        i(t.value, function (i) {
                          i || n.push(t), e();
                        });
                      },
                      function () {
                        r(
                          u(
                            n.sort(function (t, e) {
                              return t.index - e.index;
                            }),
                            function (t) {
                              return t.value;
                            }
                          )
                        );
                      }
                    );
                };
                (s.reject = f(_)), (s.rejectSeries = v(_));
                var b = function (t, e, i, r) {
                  t(
                    e,
                    function (t, e) {
                      i(t, function (i) {
                        i ? (r(t), (r = function () {})) : e();
                      });
                    },
                    function () {
                      r();
                    }
                  );
                };
                (s.detect = f(b)),
                  (s.detectSeries = v(b)),
                  (s.some = function (t, e, i) {
                    s.each(
                      t,
                      function (t, r) {
                        e(t, function (t) {
                          t && (i(!0), (i = function () {})), r();
                        });
                      },
                      function () {
                        i(!1);
                      }
                    );
                  }),
                  (s.any = s.some),
                  (s.every = function (t, e, i) {
                    s.each(
                      t,
                      function (t, r) {
                        e(t, function (t) {
                          t || (i(!1), (i = function () {})), r();
                        });
                      },
                      function () {
                        i(!0);
                      }
                    );
                  }),
                  (s.all = s.every),
                  (s.sortBy = function (t, e, i) {
                    s.map(
                      t,
                      function (t, i) {
                        e(t, function (e, r) {
                          e ? i(e) : i(null, { value: t, criteria: r });
                        });
                      },
                      function (t, e) {
                        if (t) return i(t);
                        var r = function (t, e) {
                          var i = t.criteria,
                            r = e.criteria;
                          return r > i ? -1 : i > r ? 1 : 0;
                        };
                        i(
                          null,
                          u(e.sort(r), function (t) {
                            return t.value;
                          })
                        );
                      }
                    );
                  }),
                  (s.auto = function (t, e) {
                    e = e || function () {};
                    var i = d(t),
                      r = i.length;
                    if (!r) return e();
                    var n = {},
                      o = [],
                      a = function (t) {
                        o.unshift(t);
                      },
                      u = function (t) {
                        for (var e = 0; e < o.length; e += 1)
                          if (o[e] === t) return void o.splice(e, 1);
                      },
                      p = function () {
                        r--,
                          l(o.slice(0), function (t) {
                            t();
                          });
                      };
                    a(function () {
                      if (!r) {
                        var t = e;
                        (e = function () {}), t(null, n);
                      }
                    }),
                      l(i, function (i) {
                        var r = h(t[i]) ? t[i] : [t[i]],
                          o = function (t) {
                            var r = Array.prototype.slice.call(arguments, 1);
                            if ((r.length <= 1 && (r = r[0]), t)) {
                              var o = {};
                              l(d(n), function (t) {
                                o[t] = n[t];
                              }),
                                (o[i] = r),
                                e(t, o),
                                (e = function () {});
                            } else (n[i] = r), s.setImmediate(p);
                          },
                          f = r.slice(0, Math.abs(r.length - 1)) || [],
                          m = function () {
                            return (
                              c(
                                f,
                                function (t, e) {
                                  return t && n.hasOwnProperty(e);
                                },
                                !0
                              ) && !n.hasOwnProperty(i)
                            );
                          };
                        if (m()) r[r.length - 1](o, n);
                        else {
                          var v = function () {
                            m() && (u(v), r[r.length - 1](o, n));
                          };
                          a(v);
                        }
                      });
                  }),
                  (s.retry = function (t, e, i) {
                    var r = 5,
                      n = [];
                    "function" == typeof t && ((i = e), (e = t), (t = r)),
                      (t = parseInt(t, 10) || r);
                    var o = function (r, o) {
                      for (
                        var a = function (t, e) {
                          return function (i) {
                            t(function (t, r) {
                              i(!t || e, { err: t, result: r });
                            }, o);
                          };
                        };
                        t;

                      )
                        n.push(a(e, !(t -= 1)));
                      s.series(n, function (t, e) {
                        (e = e[e.length - 1]), (r || i)(e.err, e.result);
                      });
                    };
                    return i ? o() : o;
                  }),
                  (s.waterfall = function (t, e) {
                    if (((e = e || function () {}), !h(t))) {
                      var i = new Error(
                        "First argument to waterfall must be an array of functions"
                      );
                      return e(i);
                    }
                    if (!t.length) return e();
                    var r = function (t) {
                      return function (i) {
                        if (i) e.apply(null, arguments), (e = function () {});
                        else {
                          var n = Array.prototype.slice.call(arguments, 1),
                            o = t.next();
                          n.push(o ? r(o) : e),
                            s.setImmediate(function () {
                              t.apply(null, n);
                            });
                        }
                      };
                    };
                    r(s.iterator(t))();
                  });
                var w = function (t, e, i) {
                  if (((i = i || function () {}), h(e)))
                    t.map(
                      e,
                      function (t, e) {
                        t &&
                          t(function (t) {
                            var i = Array.prototype.slice.call(arguments, 1);
                            i.length <= 1 && (i = i[0]), e.call(null, t, i);
                          });
                      },
                      i
                    );
                  else {
                    var r = {};
                    t.each(
                      d(e),
                      function (t, i) {
                        e[t](function (e) {
                          var n = Array.prototype.slice.call(arguments, 1);
                          n.length <= 1 && (n = n[0]), (r[t] = n), i(e);
                        });
                      },
                      function (t) {
                        i(t, r);
                      }
                    );
                  }
                };
                (s.parallel = function (t, e) {
                  w({ map: s.map, each: s.each }, t, e);
                }),
                  (s.parallelLimit = function (t, e, i) {
                    w({ map: y(e), each: p(e) }, t, i);
                  }),
                  (s.series = function (t, e) {
                    if (((e = e || function () {}), h(t)))
                      s.mapSeries(
                        t,
                        function (t, e) {
                          t &&
                            t(function (t) {
                              var i = Array.prototype.slice.call(arguments, 1);
                              i.length <= 1 && (i = i[0]), e.call(null, t, i);
                            });
                        },
                        e
                      );
                    else {
                      var i = {};
                      s.eachSeries(
                        d(t),
                        function (e, r) {
                          t[e](function (t) {
                            var n = Array.prototype.slice.call(arguments, 1);
                            n.length <= 1 && (n = n[0]), (i[e] = n), r(t);
                          });
                        },
                        function (t) {
                          e(t, i);
                        }
                      );
                    }
                  }),
                  (s.iterator = function (t) {
                    var e = function (i) {
                      var r = function () {
                        return (
                          t.length && t[i].apply(null, arguments), r.next()
                        );
                      };
                      return (
                        (r.next = function () {
                          return i < t.length - 1 ? e(i + 1) : null;
                        }),
                        r
                      );
                    };
                    return e(0);
                  }),
                  (s.apply = function (t) {
                    var e = Array.prototype.slice.call(arguments, 1);
                    return function () {
                      return t.apply(
                        null,
                        e.concat(Array.prototype.slice.call(arguments))
                      );
                    };
                  });
                var T = function (t, e, i, r) {
                  var n = [];
                  t(
                    e,
                    function (t, e) {
                      i(t, function (t, i) {
                        (n = n.concat(i || [])), e(t);
                      });
                    },
                    function (t) {
                      r(t, n);
                    }
                  );
                };
                (s.concat = f(T)),
                  (s.concatSeries = v(T)),
                  (s.whilst = function (t, e, i) {
                    t()
                      ? e(function (r) {
                          return r ? i(r) : void s.whilst(t, e, i);
                        })
                      : i();
                  }),
                  (s.doWhilst = function (t, e, i) {
                    t(function (r) {
                      if (r) return i(r);
                      var n = Array.prototype.slice.call(arguments, 1);
                      e.apply(null, n) ? s.doWhilst(t, e, i) : i();
                    });
                  }),
                  (s.until = function (t, e, i) {
                    t()
                      ? i()
                      : e(function (r) {
                          return r ? i(r) : void s.until(t, e, i);
                        });
                  }),
                  (s.doUntil = function (t, e, i) {
                    t(function (r) {
                      if (r) return i(r);
                      var n = Array.prototype.slice.call(arguments, 1);
                      e.apply(null, n) ? i() : s.doUntil(t, e, i);
                    });
                  }),
                  (s.queue = function (t, e) {
                    function i(t, e, i, r) {
                      return (
                        t.started || (t.started = !0),
                        h(e) || (e = [e]),
                        0 == e.length
                          ? s.setImmediate(function () {
                              t.drain && t.drain();
                            })
                          : void l(e, function (e) {
                              var n = {
                                data: e,
                                callback: "function" == typeof r ? r : null,
                              };
                              i ? t.tasks.unshift(n) : t.tasks.push(n),
                                t.saturated &&
                                  t.tasks.length === t.concurrency &&
                                  t.saturated(),
                                s.setImmediate(t.process);
                            })
                      );
                    }
                    void 0 === e && (e = 1);
                    var n = 0,
                      o = {
                        tasks: [],
                        concurrency: e,
                        saturated: null,
                        empty: null,
                        drain: null,
                        started: !1,
                        paused: !1,
                        push: function (t, e) {
                          i(o, t, !1, e);
                        },
                        kill: function () {
                          (o.drain = null), (o.tasks = []);
                        },
                        unshift: function (t, e) {
                          i(o, t, !0, e);
                        },
                        process: function () {
                          if (
                            !o.paused &&
                            n < o.concurrency &&
                            o.tasks.length
                          ) {
                            var e = o.tasks.shift();
                            o.empty && 0 === o.tasks.length && o.empty(),
                              (n += 1);
                            var i = function () {
                                (n -= 1),
                                  e.callback && e.callback.apply(e, arguments),
                                  o.drain &&
                                    o.tasks.length + n === 0 &&
                                    o.drain(),
                                  o.process();
                              },
                              s = r(i);
                            t(e.data, s);
                          }
                        },
                        length: function () {
                          return o.tasks.length;
                        },
                        running: function () {
                          return n;
                        },
                        idle: function () {
                          return o.tasks.length + n === 0;
                        },
                        pause: function () {
                          o.paused !== !0 && ((o.paused = !0), o.process());
                        },
                        resume: function () {
                          o.paused !== !1 && ((o.paused = !1), o.process());
                        },
                      };
                    return o;
                  }),
                  (s.priorityQueue = function (t, e) {
                    function i(t, e) {
                      return t.priority - e.priority;
                    }
                    function r(t, e, i) {
                      for (var r = -1, n = t.length - 1; n > r; ) {
                        var o = r + ((n - r + 1) >>> 1);
                        i(e, t[o]) >= 0 ? (r = o) : (n = o - 1);
                      }
                      return r;
                    }
                    function n(t, e, n, o) {
                      return (
                        t.started || (t.started = !0),
                        h(e) || (e = [e]),
                        0 == e.length
                          ? s.setImmediate(function () {
                              t.drain && t.drain();
                            })
                          : void l(e, function (e) {
                              var a = {
                                data: e,
                                priority: n,
                                callback: "function" == typeof o ? o : null,
                              };
                              t.tasks.splice(r(t.tasks, a, i) + 1, 0, a),
                                t.saturated &&
                                  t.tasks.length === t.concurrency &&
                                  t.saturated(),
                                s.setImmediate(t.process);
                            })
                      );
                    }
                    var o = s.queue(t, e);
                    return (
                      (o.push = function (t, e, i) {
                        n(o, t, e, i);
                      }),
                      delete o.unshift,
                      o
                    );
                  }),
                  (s.cargo = function (t, e) {
                    var i = !1,
                      r = [],
                      n = {
                        tasks: r,
                        payload: e,
                        saturated: null,
                        empty: null,
                        drain: null,
                        drained: !0,
                        push: function (t, i) {
                          h(t) || (t = [t]),
                            l(t, function (t) {
                              r.push({
                                data: t,
                                callback: "function" == typeof i ? i : null,
                              }),
                                (n.drained = !1),
                                n.saturated && r.length === e && n.saturated();
                            }),
                            s.setImmediate(n.process);
                        },
                        process: function o() {
                          if (!i) {
                            if (0 === r.length)
                              return (
                                n.drain && !n.drained && n.drain(),
                                void (n.drained = !0)
                              );
                            var s =
                                "number" == typeof e
                                  ? r.splice(0, e)
                                  : r.splice(0, r.length),
                              a = u(s, function (t) {
                                return t.data;
                              });
                            n.empty && n.empty(),
                              (i = !0),
                              t(a, function () {
                                i = !1;
                                var t = arguments;
                                l(s, function (e) {
                                  e.callback && e.callback.apply(null, t);
                                }),
                                  o();
                              });
                          }
                        },
                        length: function () {
                          return r.length;
                        },
                        running: function () {
                          return i;
                        },
                      };
                    return n;
                  });
                var S = function (t) {
                  return function (e) {
                    var i = Array.prototype.slice.call(arguments, 1);
                    e.apply(
                      null,
                      i.concat([
                        function (e) {
                          var i = Array.prototype.slice.call(arguments, 1);
                          "undefined" != typeof console &&
                            (e
                              ? console.error && void 0
                              : console[t] && l(i, function (t) {}));
                        },
                      ])
                    );
                  };
                };
                (s.log = S("log")),
                  (s.dir = S("dir")),
                  (s.memoize = function (t, e) {
                    var i = {},
                      r = {};
                    e =
                      e ||
                      function (t) {
                        return t;
                      };
                    var n = function () {
                      var n = Array.prototype.slice.call(arguments),
                        o = n.pop(),
                        a = e.apply(null, n);
                      a in i
                        ? s.nextTick(function () {
                            o.apply(null, i[a]);
                          })
                        : a in r
                        ? r[a].push(o)
                        : ((r[a] = [o]),
                          t.apply(
                            null,
                            n.concat([
                              function () {
                                i[a] = arguments;
                                var t = r[a];
                                delete r[a];
                                for (var e = 0, n = t.length; n > e; e++)
                                  t[e].apply(null, arguments);
                              },
                            ])
                          ));
                    };
                    return (n.memo = i), (n.unmemoized = t), n;
                  }),
                  (s.unmemoize = function (t) {
                    return function () {
                      return (t.unmemoized || t).apply(null, arguments);
                    };
                  }),
                  (s.times = function (t, e, i) {
                    for (var r = [], n = 0; t > n; n++) r.push(n);
                    return s.map(r, e, i);
                  }),
                  (s.timesSeries = function (t, e, i) {
                    for (var r = [], n = 0; t > n; n++) r.push(n);
                    return s.mapSeries(r, e, i);
                  }),
                  (s.seq = function () {
                    var t = arguments;
                    return function () {
                      var e = this,
                        i = Array.prototype.slice.call(arguments),
                        r = i.pop();
                      s.reduce(
                        t,
                        i,
                        function (t, i, r) {
                          i.apply(
                            e,
                            t.concat([
                              function () {
                                var t = arguments[0],
                                  e = Array.prototype.slice.call(arguments, 1);
                                r(t, e);
                              },
                            ])
                          );
                        },
                        function (t, i) {
                          r.apply(e, [t].concat(i));
                        }
                      );
                    };
                  }),
                  (s.compose = function () {
                    return s.seq.apply(
                      null,
                      Array.prototype.reverse.call(arguments)
                    );
                  });
                var E = function (t, e) {
                  var i = function () {
                    var i = this,
                      r = Array.prototype.slice.call(arguments),
                      n = r.pop();
                    return t(
                      e,
                      function (t, e) {
                        t.apply(i, r.concat([e]));
                      },
                      n
                    );
                  };
                  if (arguments.length > 2) {
                    var r = Array.prototype.slice.call(arguments, 2);
                    return i.apply(this, r);
                  }
                  return i;
                };
                (s.applyEach = f(E)),
                  (s.applyEachSeries = v(E)),
                  (s.forever = function (t, e) {
                    function i(r) {
                      if (r) {
                        if (e) return e(r);
                        throw r;
                      }
                      t(i);
                    }
                    i();
                  }),
                  "undefined" != typeof i && i.exports
                    ? (i.exports = s)
                    : "undefined" != typeof t && t.amd
                    ? t([], function () {
                        return s;
                      })
                    : (n.async = s);
              })();
            }.call(this, e("_process")));
          },
          { _process: 4 },
        ],
        3: [
          function (t, e, i) {
            (function (t) {
              function e(t, e) {
                for (var i = 0, r = t.length - 1; r >= 0; r--) {
                  var n = t[r];
                  "." === n
                    ? t.splice(r, 1)
                    : ".." === n
                    ? (t.splice(r, 1), i++)
                    : i && (t.splice(r, 1), i--);
                }
                if (e) for (; i--; i) t.unshift("..");
                return t;
              }
              function r(t, e) {
                if (t.filter) return t.filter(e);
                for (var i = [], r = 0; r < t.length; r++)
                  e(t[r], r, t) && i.push(t[r]);
                return i;
              }
              var n =
                  /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,
                o = function (t) {
                  return n.exec(t).slice(1);
                };
              (i.resolve = function () {
                for (
                  var i = "", n = !1, o = arguments.length - 1;
                  o >= -1 && !n;
                  o--
                ) {
                  var s = o >= 0 ? arguments[o] : t.cwd();
                  if ("string" != typeof s)
                    throw new TypeError(
                      "Arguments to path.resolve must be strings"
                    );
                  s && ((i = s + "/" + i), (n = "/" === s.charAt(0)));
                }
                return (
                  (i = e(
                    r(i.split("/"), function (t) {
                      return !!t;
                    }),
                    !n
                  ).join("/")),
                  (n ? "/" : "") + i || "."
                );
              }),
                (i.normalize = function (t) {
                  var n = i.isAbsolute(t),
                    o = "/" === s(t, -1);
                  return (
                    (t = e(
                      r(t.split("/"), function (t) {
                        return !!t;
                      }),
                      !n
                    ).join("/")),
                    t || n || (t = "."),
                    t && o && (t += "/"),
                    (n ? "/" : "") + t
                  );
                }),
                (i.isAbsolute = function (t) {
                  return "/" === t.charAt(0);
                }),
                (i.join = function () {
                  var t = Array.prototype.slice.call(arguments, 0);
                  return i.normalize(
                    r(t, function (t) {
                      if ("string" != typeof t)
                        throw new TypeError(
                          "Arguments to path.join must be strings"
                        );
                      return t;
                    }).join("/")
                  );
                }),
                (i.relative = function (t, e) {
                  function r(t) {
                    for (var e = 0; e < t.length && "" === t[e]; e++);
                    for (var i = t.length - 1; i >= 0 && "" === t[i]; i--);
                    return e > i ? [] : t.slice(e, i - e + 1);
                  }
                  (t = i.resolve(t).substr(1)), (e = i.resolve(e).substr(1));
                  for (
                    var n = r(t.split("/")),
                      o = r(e.split("/")),
                      s = Math.min(n.length, o.length),
                      a = s,
                      h = 0;
                    s > h;
                    h++
                  )
                    if (n[h] !== o[h]) {
                      a = h;
                      break;
                    }
                  for (var l = [], h = a; h < n.length; h++) l.push("..");
                  return (l = l.concat(o.slice(a))), l.join("/");
                }),
                (i.sep = "/"),
                (i.delimiter = ":"),
                (i.dirname = function (t) {
                  var e = o(t),
                    i = e[0],
                    r = e[1];
                  return i || r
                    ? (r && (r = r.substr(0, r.length - 1)), i + r)
                    : ".";
                }),
                (i.basename = function (t, e) {
                  var i = o(t)[2];
                  return (
                    e &&
                      i.substr(-1 * e.length) === e &&
                      (i = i.substr(0, i.length - e.length)),
                    i
                  );
                }),
                (i.extname = function (t) {
                  return o(t)[3];
                });
              var s =
                "b" === "ab".substr(-1)
                  ? function (t, e, i) {
                      return t.substr(e, i);
                    }
                  : function (t, e, i) {
                      return 0 > e && (e = t.length + e), t.substr(e, i);
                    };
            }.call(this, t("_process")));
          },
          { _process: 4 },
        ],
        4: [
          function (t, e) {
            function i() {
              if (!s) {
                s = !0;
                for (var t, e = o.length; e; ) {
                  (t = o), (o = []);
                  for (var i = -1; ++i < e; ) t[i]();
                  e = o.length;
                }
                s = !1;
              }
            }
            function r() {}
            var n = (e.exports = {}),
              o = [],
              s = !1;
            (n.nextTick = function (t) {
              o.push(t), s || setTimeout(i, 0);
            }),
              (n.title = "browser"),
              (n.browser = !0),
              (n.env = {}),
              (n.argv = []),
              (n.version = ""),
              (n.on = r),
              (n.addListener = r),
              (n.once = r),
              (n.off = r),
              (n.removeListener = r),
              (n.removeAllListeners = r),
              (n.emit = r),
              (n.binding = function () {
                throw new Error("process.binding is not supported");
              }),
              (n.cwd = function () {
                return "/";
              }),
              (n.chdir = function () {
                throw new Error("process.chdir is not supported");
              }),
              (n.umask = function () {
                return 0;
              });
          },
          {},
        ],
        5: [
          function (e, i, r) {
            !(function () {
              function e() {
                (this._events = {}), this._conf && i.call(this, this._conf);
              }
              function i(t) {
                t &&
                  ((this._conf = t),
                  t.delimiter && (this.delimiter = t.delimiter),
                  t.maxListeners &&
                    (this._events.maxListeners = t.maxListeners),
                  t.wildcard && (this.wildcard = t.wildcard),
                  t.newListener && (this.newListener = t.newListener),
                  this.wildcard && (this.listenerTree = {}));
              }
              function n(t) {
                (this._events = {}), (this.newListener = !1), i.call(this, t);
              }
              function o(t, e, i, r) {
                if (!i) return [];
                var n,
                  s,
                  a,
                  h,
                  l,
                  u,
                  c,
                  d = [],
                  p = e.length,
                  f = e[r],
                  m = e[r + 1];
                if (r === p && i._listeners) {
                  if ("function" == typeof i._listeners)
                    return t && t.push(i._listeners), [i];
                  for (n = 0, s = i._listeners.length; s > n; n++)
                    t && t.push(i._listeners[n]);
                  return [i];
                }
                if ("*" === f || "**" === f || i[f]) {
                  if ("*" === f) {
                    for (a in i)
                      "_listeners" !== a &&
                        i.hasOwnProperty(a) &&
                        (d = d.concat(o(t, e, i[a], r + 1)));
                    return d;
                  }
                  if ("**" === f) {
                    (c = r + 1 === p || (r + 2 === p && "*" === m)),
                      c && i._listeners && (d = d.concat(o(t, e, i, p)));
                    for (a in i)
                      "_listeners" !== a &&
                        i.hasOwnProperty(a) &&
                        ("*" === a || "**" === a
                          ? (i[a]._listeners &&
                              !c &&
                              (d = d.concat(o(t, e, i[a], p))),
                            (d = d.concat(o(t, e, i[a], r))))
                          : (d = d.concat(
                              a === m ? o(t, e, i[a], r + 2) : o(t, e, i[a], r)
                            )));
                    return d;
                  }
                  d = d.concat(o(t, e, i[f], r + 1));
                }
                if (((h = i["*"]), h && o(t, e, h, r + 1), (l = i["**"])))
                  if (p > r) {
                    l._listeners && o(t, e, l, p);
                    for (a in l)
                      "_listeners" !== a &&
                        l.hasOwnProperty(a) &&
                        (a === m
                          ? o(t, e, l[a], r + 2)
                          : a === f
                          ? o(t, e, l[a], r + 1)
                          : ((u = {}),
                            (u[a] = l[a]),
                            o(t, e, { "**": u }, r + 1)));
                  } else
                    l._listeners
                      ? o(t, e, l, p)
                      : l["*"] && l["*"]._listeners && o(t, e, l["*"], p);
                return d;
              }
              function s(t, e) {
                t = "string" == typeof t ? t.split(this.delimiter) : t.slice();
                for (var i = 0, r = t.length; r > i + 1; i++)
                  if ("**" === t[i] && "**" === t[i + 1]) return;
                for (var n = this.listenerTree, o = t.shift(); o; ) {
                  if ((n[o] || (n[o] = {}), (n = n[o]), 0 === t.length)) {
                    if (n._listeners) {
                      if ("function" == typeof n._listeners)
                        n._listeners = [n._listeners, e];
                      else if (
                        a(n._listeners) &&
                        (n._listeners.push(e), !n._listeners.warned)
                      ) {
                        var s = h;
                        "undefined" != typeof this._events.maxListeners &&
                          (s = this._events.maxListeners),
                          s > 0 &&
                            n._listeners.length > s &&
                            void (n._listeners.warned = !0);
                      }
                    } else n._listeners = e;
                    return !0;
                  }
                  o = t.shift();
                }
                return !0;
              }
              var a = Array.isArray
                  ? Array.isArray
                  : function (t) {
                      return (
                        "[object Array]" === Object.prototype.toString.call(t)
                      );
                    },
                h = 10;
              (n.prototype.delimiter = "."),
                (n.prototype.setMaxListeners = function (t) {
                  this._events || e.call(this),
                    (this._events.maxListeners = t),
                    this._conf || (this._conf = {}),
                    (this._conf.maxListeners = t);
                }),
                (n.prototype.event = ""),
                (n.prototype.once = function (t, e) {
                  return this.many(t, 1, e), this;
                }),
                (n.prototype.many = function (t, e, i) {
                  function r() {
                    0 === --e && n.off(t, r), i.apply(this, arguments);
                  }
                  var n = this;
                  if ("function" != typeof i)
                    throw new Error("many only accepts instances of Function");
                  return (r._origin = i), this.on(t, r), n;
                }),
                (n.prototype.emit = function () {
                  this._events || e.call(this);
                  var t = arguments[0];
                  if (
                    "newListener" === t &&
                    !this.newListener &&
                    !this._events.newListener
                  )
                    return !1;
                  if (this._all) {
                    for (
                      var i = arguments.length, r = new Array(i - 1), n = 1;
                      i > n;
                      n++
                    )
                      r[n - 1] = arguments[n];
                    for (n = 0, i = this._all.length; i > n; n++)
                      (this.event = t), this._all[n].apply(this, r);
                  }
                  if (
                    "error" === t &&
                    !(
                      this._all ||
                      this._events.error ||
                      (this.wildcard && this.listenerTree.error)
                    )
                  )
                    throw arguments[1] instanceof Error
                      ? arguments[1]
                      : new Error("Uncaught, unspecified 'error' event.");
                  var s;
                  if (this.wildcard) {
                    s = [];
                    var a =
                      "string" == typeof t
                        ? t.split(this.delimiter)
                        : t.slice();
                    o.call(this, s, a, this.listenerTree, 0);
                  } else s = this._events[t];
                  if ("function" == typeof s) {
                    if (((this.event = t), 1 === arguments.length))
                      s.call(this);
                    else if (arguments.length > 1)
                      switch (arguments.length) {
                        case 2:
                          s.call(this, arguments[1]);
                          break;
                        case 3:
                          s.call(this, arguments[1], arguments[2]);
                          break;
                        default:
                          for (
                            var i = arguments.length,
                              r = new Array(i - 1),
                              n = 1;
                            i > n;
                            n++
                          )
                            r[n - 1] = arguments[n];
                          s.apply(this, r);
                      }
                    return !0;
                  }
                  if (s) {
                    for (
                      var i = arguments.length, r = new Array(i - 1), n = 1;
                      i > n;
                      n++
                    )
                      r[n - 1] = arguments[n];
                    for (var h = s.slice(), n = 0, i = h.length; i > n; n++)
                      (this.event = t), h[n].apply(this, r);
                    return h.length > 0 || !!this._all;
                  }
                  return !!this._all;
                }),
                (n.prototype.on = function (t, i) {
                  if ("function" == typeof t) return this.onAny(t), this;
                  if ("function" != typeof i)
                    throw new Error("on only accepts instances of Function");
                  if (
                    (this._events || e.call(this),
                    this.emit("newListener", t, i),
                    this.wildcard)
                  )
                    return s.call(this, t, i), this;
                  if (this._events[t]) {
                    if ("function" == typeof this._events[t])
                      this._events[t] = [this._events[t], i];
                    else if (
                      a(this._events[t]) &&
                      (this._events[t].push(i), !this._events[t].warned)
                    ) {
                      var r = h;
                      "undefined" != typeof this._events.maxListeners &&
                        (r = this._events.maxListeners),
                        r > 0 &&
                          this._events[t].length > r &&
                          void (this._events[t].warned = !0);
                    }
                  } else this._events[t] = i;
                  return this;
                }),
                (n.prototype.onAny = function (t) {
                  if ("function" != typeof t)
                    throw new Error("onAny only accepts instances of Function");
                  return this._all || (this._all = []), this._all.push(t), this;
                }),
                (n.prototype.addListener = n.prototype.on),
                (n.prototype.off = function (t, e) {
                  if ("function" != typeof e)
                    throw new Error(
                      "removeListener only takes instances of Function"
                    );
                  var i,
                    r = [];
                  if (this.wildcard) {
                    var n =
                      "string" == typeof t
                        ? t.split(this.delimiter)
                        : t.slice();
                    r = o.call(this, null, n, this.listenerTree, 0);
                  } else {
                    if (!this._events[t]) return this;
                    (i = this._events[t]), r.push({ _listeners: i });
                  }
                  for (var s = 0; s < r.length; s++) {
                    var h = r[s];
                    if (((i = h._listeners), a(i))) {
                      for (var l = -1, u = 0, c = i.length; c > u; u++)
                        if (
                          i[u] === e ||
                          (i[u].listener && i[u].listener === e) ||
                          (i[u]._origin && i[u]._origin === e)
                        ) {
                          l = u;
                          break;
                        }
                      if (0 > l) continue;
                      return (
                        this.wildcard
                          ? h._listeners.splice(l, 1)
                          : this._events[t].splice(l, 1),
                        0 === i.length &&
                          (this.wildcard
                            ? delete h._listeners
                            : delete this._events[t]),
                        this
                      );
                    }
                    (i === e ||
                      (i.listener && i.listener === e) ||
                      (i._origin && i._origin === e)) &&
                      (this.wildcard
                        ? delete h._listeners
                        : delete this._events[t]);
                  }
                  return this;
                }),
                (n.prototype.offAny = function (t) {
                  var e,
                    i = 0,
                    r = 0;
                  if (t && this._all && this._all.length > 0) {
                    for (e = this._all, i = 0, r = e.length; r > i; i++)
                      if (t === e[i]) return e.splice(i, 1), this;
                  } else this._all = [];
                  return this;
                }),
                (n.prototype.removeListener = n.prototype.off),
                (n.prototype.removeAllListeners = function (t) {
                  if (0 === arguments.length)
                    return !this._events || e.call(this), this;
                  if (this.wildcard)
                    for (
                      var i =
                          "string" == typeof t
                            ? t.split(this.delimiter)
                            : t.slice(),
                        r = o.call(this, null, i, this.listenerTree, 0),
                        n = 0;
                      n < r.length;
                      n++
                    ) {
                      var s = r[n];
                      s._listeners = null;
                    }
                  else {
                    if (!this._events[t]) return this;
                    this._events[t] = null;
                  }
                  return this;
                }),
                (n.prototype.listeners = function (t) {
                  if (this.wildcard) {
                    var i = [],
                      r =
                        "string" == typeof t
                          ? t.split(this.delimiter)
                          : t.slice();
                    return o.call(this, i, r, this.listenerTree, 0), i;
                  }
                  return (
                    this._events || e.call(this),
                    this._events[t] || (this._events[t] = []),
                    a(this._events[t]) || (this._events[t] = [this._events[t]]),
                    this._events[t]
                  );
                }),
                (n.prototype.listenersAny = function () {
                  return this._all ? this._all : [];
                }),
                "function" == typeof t && t.amd
                  ? t(function () {
                      return n;
                    })
                  : "object" == typeof r
                  ? (r.EventEmitter2 = n)
                  : (window.EventEmitter2 = n);
            })();
          },
          {},
        ],
        6: [
          function (t, e) {
            function i(t, e) {
              o.call(this),
                (e = e || 10),
                (this.baseUrl = t || ""),
                (this.progress = 0),
                (this.loading = !1),
                (this._progressChunk = 0),
                (this._beforeMiddleware = []),
                (this._afterMiddleware = []),
                (this._boundLoadResource = this.loadResource.bind(this)),
                (this._boundOnComplete = this._onComplete.bind(this)),
                (this._buffer = []),
                (this.queue = r.queue(this._boundLoadResource, e)),
                (this.resources = {});
            }
            var r = t("async"),
              n = t("./Resource"),
              o = t("eventemitter2").EventEmitter2;
            (i.prototype = Object.create(o.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.add = i.prototype.enqueue =
                function (t, e, i, r) {
                  if (
                    ("function" == typeof i && ((r = i), (i = null)),
                    this.resources[t])
                  )
                    throw new Error(
                      'Resource with name "' + t + '" already exists.'
                    );
                  return (
                    (this.resources[t] = new n(t, this.baseUrl + e, i)),
                    "function" == typeof r &&
                      this.resources[t].once("afterMiddleware", r),
                    this.queue.started
                      ? (this.queue.push(this.resources[t]),
                        (this._progressChunk =
                          (100 - this.progress) /
                          (this.queue.length() + this.queue.running())))
                      : (this._buffer.push(this.resources[t]),
                        (this._progressChunk = 100 / this._buffer.length)),
                    this
                  );
                }),
              (i.prototype.before = i.prototype.pre =
                function (t) {
                  return this._beforeMiddleware.push(t), this;
                }),
              (i.prototype.after = i.prototype.use =
                function (t) {
                  return this._afterMiddleware.push(t), this;
                }),
              (i.prototype.reset = function () {
                (this._buffer.length = 0),
                  this.queue.kill(),
                  (this.queue.started = !1),
                  (this.progress = 0),
                  (this._progressChunk = 0),
                  (this.loading = !1);
              }),
              (i.prototype.load = function (t) {
                if (
                  ("function" == typeof t && this.once("complete", t),
                  this.queue.started)
                )
                  return this;
                (this.queue.drain = this._boundOnComplete),
                  this.emit("start", this);
                for (var e = 0; e < this._buffer.length; ++e)
                  this.queue.push(this._buffer[e]);
                return (this._buffer.length = 0), this;
              }),
              (i.prototype.loadResource = function (t, e) {
                var i = this;
                this._runMiddleware(t, this._beforeMiddleware, function () {
                  t.once("complete", i._onLoad.bind(i, t, e)), t.load();
                });
              }),
              (i.prototype._onComplete = function () {
                this.emit("complete", this, this.resources);
              }),
              (i.prototype._onLoad = function (t, e) {
                (this.progress += this._progressChunk),
                  this.emit("progress", this, t),
                  t.error
                    ? this.emit("error", t.error, this, t)
                    : this.emit("load", this, t),
                  this._runMiddleware(t, this._afterMiddleware, function () {
                    t.emit("afterMiddleware", t), e && e();
                  });
              }),
              (i.prototype._runMiddleware = function (t, e, i) {
                var n = this;
                r.eachSeries(
                  e,
                  function (e, i) {
                    e.call(n, t, i);
                  },
                  i.bind(this, t)
                );
              }),
              (i.LOAD_TYPE = n.LOAD_TYPE),
              (i.XHR_READY_STATE = n.XHR_READY_STATE),
              (i.XHR_RESPONSE_TYPE = n.XHR_RESPONSE_TYPE);
          },
          { "./Resource": 7, async: 2, eventemitter2: 5 },
        ],
        7: [
          function (t, e) {
            function i(t, e, r) {
              if (
                (n.call(this),
                (r = r || {}),
                "string" != typeof t || "string" != typeof e)
              )
                throw new Error(
                  "Both name and url are required for constructing a resource."
                );
              (this.name = t),
                (this.url = e),
                (this.data = null),
                (this.crossOrigin = r.crossOrigin),
                (this.loadType = r.loadType || i.LOAD_TYPE.XHR),
                (this.xhrType = r.xhrType),
                (this.error = null),
                (this.xhr = null),
                (this._boundComplete = this.complete.bind(this)),
                (this._boundOnError = this._onError.bind(this)),
                (this._boundOnProgress = this._onProgress.bind(this)),
                (this._boundXhrOnError = this._xhrOnError.bind(this)),
                (this._boundXhrOnAbort = this._xhrOnAbort.bind(this)),
                (this._boundXhrOnLoad = this._xhrOnLoad.bind(this)),
                (this._boundXdrOnTimeout = this._xdrOnTimeout.bind(this));
            }
            function r(t) {
              return t.toString().replace("object ", "");
            }
            var n = t("eventemitter2").EventEmitter2,
              o = !(
                !window.XDomainRequest ||
                "withCredentials" in new XMLHttpRequest()
              );
            (i.prototype = Object.create(n.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.complete = function () {
                this.data &&
                  this.data.removeEventListener &&
                  (this.data.removeEventListener("error", this._boundOnError),
                  this.data.removeEventListener("load", this._boundComplete),
                  this.data.removeEventListener(
                    "progress",
                    this._boundOnProgress
                  ),
                  this.data.removeEventListener(
                    "canplaythrough",
                    this._boundComplete
                  )),
                  this.xhr &&
                    (this.xhr.removeEventListener
                      ? (this.xhr.removeEventListener(
                          "error",
                          this._boundXhrOnError
                        ),
                        this.xhr.removeEventListener(
                          "abort",
                          this._boundXhrOnAbort
                        ),
                        this.xhr.removeEventListener(
                          "progress",
                          this._boundOnProgress
                        ),
                        this.xhr.removeEventListener(
                          "load",
                          this._boundXhrOnLoad
                        ))
                      : ((this.xhr.onerror = null),
                        (this.xhr.ontimeout = null),
                        (this.xhr.onprogress = null),
                        (this.xhr.onload = null))),
                  this.emit("complete", this);
              }),
              (i.prototype.load = function () {
                switch (
                  (this.emit("start", this),
                  "string" != typeof this.crossOrigin &&
                    (this.crossOrigin = this._determineCrossOrigin()),
                  this.loadType)
                ) {
                  case i.LOAD_TYPE.IMAGE:
                    this._loadImage();
                    break;
                  case i.LOAD_TYPE.AUDIO:
                    this._loadElement("audio");
                    break;
                  case i.LOAD_TYPE.VIDEO:
                    this._loadElement("video");
                    break;
                  case i.LOAD_TYPE.XHR:
                  default:
                    o ? this._loadXdr() : this._loadXhr();
                }
              }),
              (i.prototype._loadImage = function () {
                (this.data = new Image()),
                  this.crossOrigin && (this.data.crossOrigin = ""),
                  (this.data.src = this.url),
                  this.data.addEventListener("error", this._boundOnError, !1),
                  this.data.addEventListener("load", this._boundComplete, !1),
                  this.data.addEventListener(
                    "progress",
                    this._boundOnProgress,
                    !1
                  );
              }),
              (i.prototype._loadElement = function (t) {
                if (
                  ((this.data = document.createElement(t)),
                  Array.isArray(this.url))
                )
                  for (var e = 0; e < this.url.length; ++e)
                    this.data.appendChild(this._createSource(t, this.url[e]));
                else this.data.appendChild(this._createSource(t, this.url));
                this.data.addEventListener("error", this._boundOnError, !1),
                  this.data.addEventListener("load", this._boundComplete, !1),
                  this.data.addEventListener(
                    "progress",
                    this._boundOnProgress,
                    !1
                  ),
                  this.data.addEventListener(
                    "canplaythrough",
                    this._boundComplete,
                    !1
                  ),
                  this.data.load();
              }),
              (i.prototype._loadXhr = function () {
                "string" != typeof this.xhrType &&
                  (this.xhrType = this._determineXhrType());
                var t = (this.xhr = new XMLHttpRequest());
                t.open("GET", this.url, !0),
                  (t.responseType = this.xhrType),
                  t.addEventListener("error", this._boundXhrOnError, !1),
                  t.addEventListener("abort", this._boundXhrOnAbort, !1),
                  t.addEventListener("progress", this._boundOnProgress, !1),
                  t.addEventListener("load", this._boundXhrOnLoad, !1),
                  t.send();
              }),
              (i.prototype._loadXdr = function () {
                var t = (this.xhr = new XDomainRequest());
                (t.timeout = 5e3),
                  (t.onerror = this._boundXhrOnError),
                  (t.ontimeout = this._boundXdrOnTimeout),
                  (t.onprogress = this._boundOnProgress),
                  (t.onload = this._boundXhrOnLoad);
              }),
              (i.prototype._createSource = function (t, e, i) {
                i || (i = t + "/" + e.substr(e.lastIndexOf(".") + 1));
                var r = document.createElement("source");
                return (r.src = e), (r.type = i), r;
              }),
              (i.prototype._onError = function (t) {
                (this.error = new Error(
                  "Failed to load element using " + t.target.nodeName
                )),
                  this.complete();
              }),
              (i.prototype._onProgress = function (t) {
                t.lengthComputable &&
                  this.emit("progress", this, t.loaded / t.total);
              }),
              (i.prototype._xhrOnError = function (t) {
                (this.error = new Error(
                  r(t.target) +
                    " Request failed. Status: " +
                    t.target.status +
                    ', text: "' +
                    t.target.statusText +
                    '"'
                )),
                  this.complete();
              }),
              (i.prototype._xhrOnAbort = function (t) {
                (this.error = new Error(
                  r(t.target) + " Request was aborted by the user."
                )),
                  this.complete();
              }),
              (i.prototype._xdrOnTimeout = function (t) {
                (this.error = new Error(r(t.target) + " Request timed out.")),
                  this.complete();
              }),
              (i.prototype._xhrOnLoad = function (t) {
                var e = t.target;
                200 === e.status
                  ? (this.data =
                      this.xhrType === i.XHR_RESPONSE_TYPE.TEXT
                        ? e.responseText
                        : this.xhrType === i.XHR_RESPONSE_TYPE.DOCUMENT
                        ? e.responseXML || e.response
                        : e.response)
                  : (this.error = new Error(e.responseText)),
                  this.complete();
              }),
              (i.prototype._determineCrossOrigin = function () {
                if (0 === this.url.indexOf("data:")) return "";
                var t = window.location,
                  e = document.createElement("a");
                return (
                  (e.href = this.url),
                  e.hostname !== t.hostname ||
                  e.port !== t.port ||
                  e.protocol !== t.protocol
                    ? "anonymous"
                    : ""
                );
              }),
              (i.prototype._determineXhrType = function () {
                var t = this.url.substr(this.url.lastIndexOf(".") + 1);
                switch (t) {
                  case "xhtml":
                  case "html":
                  case "htm":
                  case "xml":
                  case "tmx":
                  case "tsx":
                  case "svg":
                    return i.XHR_RESPONSE_TYPE.DOCUMENT;
                  case "gif":
                  case "png":
                  case "jpg":
                  case "jpeg":
                  case "tif":
                  case "tiff":
                  case "webp":
                    return i.XHR_RESPONSE_TYPE.BLOB;
                  case "json":
                    return i.XHR_RESPONSE_TYPE.JSON;
                  case "text":
                  case "txt":
                  default:
                    return i.XHR_RESPONSE_TYPE.TEXT;
                }
              }),
              (i.prototype._getMimeFromXhrType = function (t) {
                switch (t) {
                  case i.XHR_RESPONSE_TYPE.BUFFER:
                    return "application/octet-binary";
                  case i.XHR_RESPONSE_TYPE.BLOB:
                    return "application/blob";
                  case i.XHR_RESPONSE_TYPE.DOCUMENT:
                    return "application/xml";
                  case i.XHR_RESPONSE_TYPE.JSON:
                    return "application/json";
                  case i.XHR_RESPONSE_TYPE.DEFAULT:
                  case i.XHR_RESPONSE_TYPE.TEXT:
                  default:
                    return "text/plain";
                }
              }),
              (i.LOAD_TYPE = { XHR: 1, IMAGE: 2, AUDIO: 3, VIDEO: 4 }),
              (i.XHR_READY_STATE = {
                UNSENT: 0,
                OPENED: 1,
                HEADERS_RECEIVED: 2,
                LOADING: 3,
                DONE: 4,
              }),
              (i.XHR_RESPONSE_TYPE = {
                DEFAULT: "text",
                BUFFER: "arraybuffer",
                BLOB: "blob",
                DOCUMENT: "document",
                JSON: "json",
                TEXT: "text",
              });
          },
          { eventemitter2: 5 },
        ],
        8: [
          function (t, e) {
            (e.exports = t("./Loader")),
              (e.exports.Resource = t("./Resource")),
              (e.exports.middleware = {
                caching: { memory: t("./middlewares/caching/memory") },
                parsing: {
                  json: t("./middlewares/parsing/json"),
                  blob: t("./middlewares/parsing/blob"),
                },
              });
          },
          {
            "./Loader": 6,
            "./Resource": 7,
            "./middlewares/caching/memory": 9,
            "./middlewares/parsing/blob": 10,
            "./middlewares/parsing/json": 11,
          },
        ],
        9: [
          function (t, e) {
            var i = {};
            e.exports = function () {
              return function (t, e) {
                i[t.url]
                  ? ((t.data = i[t.url]), t.complete())
                  : (t.once("complete", function () {
                      i[this.url] = this.data;
                    }),
                    e());
              };
            };
          },
          {},
        ],
        10: [
          function (t, e) {
            var i = t("../../Resource");
            (window.URL = window.URL || window.webkitURL),
              (e.exports = function () {
                return function (t, e) {
                  if (t.xhr && t.xhrType === i.XHR_RESPONSE_TYPE.BLOB) {
                    if (0 === t.data.type.indexOf("image")) {
                      var r = URL.createObjectURL(t.data);
                      (t.data = new Image()),
                        (t.data.src = r),
                        (t.data.onload = function () {
                          URL.revokeObjectURL(r), (t.data.onload = null), e();
                        });
                    }
                  } else e();
                };
              });
          },
          { "../../Resource": 7 },
        ],
        11: [
          function (t, e) {
            e.exports = function () {
              return function (t, e) {
                if ("string" == typeof t.data)
                  try {
                    t.data = JSON.parse(t.data);
                  } catch (i) {}
                e();
              };
            };
          },
          {},
        ],
        12: [
          function (t, e) {
            e.exports = {
              name: "pixi.js",
              version: "3.0.0",
              description:
                "Pixi.js is a fast lightweight 2D library that works across all devices.",
              author: "Mat Groves",
              contributors: [
                "Chad Engler <chad@pantherdev.com>",
                "Richard Davey <rdavey@gmail.com>",
              ],
              main: "./src/index.js",
              homepage: "http://goodboydigital.com/",
              bugs: "https://github.com/pixijs/pixijs/issues",
              license: "MIT",
              repository: {
                type: "git",
                url: "https://github.com/pixijs/pixijs.git",
              },
              scripts: {
                test: "gulp test",
                docs: "./node_modules/.bin/jsdoc -c ./gulp/util/jsdoc.conf.json",
              },
              devDependencies: {
                brfs: "^1.2.0",
                browserify: "^8.0.2",
                chai: "^1.10.0",
                del: "^1.1.0",
                gulp: "^3.8.10",
                "gulp-cached": "^1.0.1",
                "gulp-jshint": "^1.9.0",
                "gulp-plumber": "^0.6.6",
                "gulp-rename": "^1.2.0",
                "gulp-uglify": "^1.0.2",
                "gulp-util": "^3.0.1",
                "ink-docstrap": "^0.4.12",
                jsdoc: "^3.3.0-alpha13",
                "jshint-summary": "^0.4.0",
                karma: "^0.12.28",
                "karma-firefox-launcher": "^0.1.0",
                "karma-mocha": "^0.1.10",
                "karma-spec-reporter": "^0.0.16",
                minimist: "^1.1.0",
                mocha: "^2.1.0",
                "require-dir": "^0.1.0",
                "run-sequence": "^1.0.2",
                "vinyl-buffer": "^1.0.0",
                "vinyl-source-stream": "^1.0.0",
                watchify: "^2.2.1",
              },
              dependencies: { async: "^0.9.0", "resource-loader": "^1.1.4" },
              browserify: { transform: ["brfs"] },
            };
          },
          {},
        ],
        13: [
          function (t, e) {
            e.exports = {
              VERSION: t("../../package.json").version,
              RENDERER_TYPE: { UNKNOWN: 0, WEBGL: 1, CANVAS: 2 },
              BLEND_MODES: {
                NORMAL: 0,
                ADD: 1,
                MULTIPLY: 2,
                SCREEN: 3,
                OVERLAY: 4,
                DARKEN: 5,
                LIGHTEN: 6,
                COLOR_DODGE: 7,
                COLOR_BURN: 8,
                HARD_LIGHT: 9,
                SOFT_LIGHT: 10,
                DIFFERENCE: 11,
                EXCLUSION: 12,
                HUE: 13,
                SATURATION: 14,
                COLOR: 15,
                LUMINOSITY: 16,
              },
              SCALE_MODES: { DEFAULT: 0, LINEAR: 0, NEAREST: 1 },
              RETINA_PREFIX: /@(.+)x/,
              RESOLUTION: 1,
              DEFAULT_RENDER_OPTIONS: {
                view: null,
                resolution: 1,
                antialias: !1,
                autoResize: !1,
                transparent: !1,
                backgroundColor: 0,
                clearBeforeRender: !0,
                preserveDrawingBuffer: !1,
              },
              SHAPES: { POLY: 0, RECT: 1, CIRC: 2, ELIP: 3, RREC: 4 },
              SPRITE_BATCH_SIZE: 2e3,
            };
          },
          { "../../package.json": 12 },
        ],
        14: [
          function (t, e) {
            function i() {
              n.call(this), (this.children = []);
            }
            var r = t("../math"),
              n = t("./DisplayObject"),
              o = t("../textures/RenderTexture"),
              s = new r.Matrix();
            (i.prototype = Object.create(n.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                width: {
                  get: function () {
                    return this.scale.x * this.getLocalBounds().width;
                  },
                  set: function (t) {
                    var e = this.getLocalBounds().width;
                    (this.scale.x = 0 !== e ? t / e : 1), (this._width = t);
                  },
                },
                height: {
                  get: function () {
                    return this.scale.y * this.getLocalBounds().height;
                  },
                  set: function (t) {
                    var e = this.getLocalBounds().height;
                    (this.scale.y = 0 !== e ? t / e : 1), (this._height = t);
                  },
                },
              }),
              (i.prototype.addChild = function (t) {
                return this.addChildAt(t, this.children.length);
              }),
              (i.prototype.addChildAt = function (t, e) {
                if (t === this) return t;
                if (e >= 0 && e <= this.children.length)
                  return (
                    t.parent && t.parent.removeChild(t),
                    (t.parent = this),
                    this.children.splice(e, 0, t),
                    t
                  );
                throw new Error(
                  t +
                    "addChildAt: The index " +
                    e +
                    " supplied is out of bounds " +
                    this.children.length
                );
              }),
              (i.prototype.swapChildren = function (t, e) {
                if (t !== e) {
                  var i = this.getChildIndex(t),
                    r = this.getChildIndex(e);
                  if (0 > i || 0 > r)
                    throw new Error(
                      "swapChildren: Both the supplied DisplayObjects must be a child of the caller."
                    );
                  (this.children[i] = e), (this.children[r] = t);
                }
              }),
              (i.prototype.getChildIndex = function (t) {
                var e = this.children.indexOf(t);
                if (-1 === e)
                  throw new Error(
                    "The supplied DisplayObject must be a child of the caller"
                  );
                return e;
              }),
              (i.prototype.setChildIndex = function (t, e) {
                if (0 > e || e >= this.children.length)
                  throw new Error("The supplied index is out of bounds");
                var i = this.getChildIndex(t);
                this.children.splice(i, 1), this.children.splice(e, 0, t);
              }),
              (i.prototype.getChildAt = function (t) {
                if (0 > t || t >= this.children.length)
                  throw new Error(
                    "getChildAt: Supplied index " +
                      t +
                      " does not exist in the child list, or the supplied DisplayObject must be a child of the caller"
                  );
                return this.children[t];
              }),
              (i.prototype.removeChild = function (t) {
                var e = this.children.indexOf(t);
                return -1 !== e ? this.removeChildAt(e) : void 0;
              }),
              (i.prototype.removeChildAt = function (t) {
                var e = this.getChildAt(t);
                return (e.parent = null), this.children.splice(t, 1), e;
              }),
              (i.prototype.removeChildren = function (t, e) {
                var i = t || 0,
                  r = "number" == typeof e ? e : this.children.length,
                  n = r - i;
                if (n > 0 && r >= n) {
                  for (
                    var o = this.children.splice(i, n), s = 0;
                    s < o.length;
                    ++s
                  )
                    o[s].parent = null;
                  return o;
                }
                if (0 === n && 0 === this.children.length) return [];
                throw new RangeError(
                  "removeChildren: numeric values are outside the acceptable range."
                );
              }),
              (i.prototype.generateTexture = function (t, e, i) {
                var r = this.getLocalBounds(),
                  n = new o(t, 0 | r.width, 0 | r.height, t, i, e);
                return (s.tx = -r.x), (s.ty = -r.y), n.render(this, s), n;
              }),
              (i.prototype.updateTransform = function () {
                if (this.visible) {
                  this.displayObjectUpdateTransform();
                  for (var t = 0, e = this.children.length; e > t; ++t)
                    this.children[t].updateTransform();
                }
              }),
              (i.prototype.containerUpdateTransform =
                i.prototype.updateTransform),
              (i.prototype.getBounds = function () {
                if (!this._currentBounds) {
                  if (0 === this.children.length) return r.Rectangle.EMPTY;
                  for (
                    var t,
                      e,
                      i,
                      n = 1 / 0,
                      o = 1 / 0,
                      s = -1 / 0,
                      a = -1 / 0,
                      h = !1,
                      l = 0,
                      u = this.children.length;
                    u > l;
                    ++l
                  ) {
                    var c = this.children[l];
                    c.visible &&
                      ((h = !0),
                      (t = this.children[l].getBounds()),
                      (n = n < t.x ? n : t.x),
                      (o = o < t.y ? o : t.y),
                      (e = t.width + t.x),
                      (i = t.height + t.y),
                      (s = s > e ? s : e),
                      (a = a > i ? a : i));
                  }
                  if (!h) return r.Rectangle.EMPTY;
                  var d = this._bounds;
                  (d.x = n),
                    (d.y = o),
                    (d.width = s - n),
                    (d.height = a - o),
                    (this._currentBounds = d);
                }
                return this._currentBounds;
              }),
              (i.prototype.getLocalBounds = function () {
                var t = this.worldTransform;
                this.worldTransform = r.Matrix.IDENTITY;
                for (var e = 0, i = this.children.length; i > e; ++e)
                  this.children[e].updateTransform();
                return (
                  (this.worldTransform = t),
                  (this._currentBounds = null),
                  this.getBounds()
                );
              }),
              (i.prototype.renderWebGL = function (t) {
                if (
                  this.visible &&
                  !(this.worldAlpha <= 0) &&
                  this.renderable
                ) {
                  var e, i;
                  if (this._mask || this._filters) {
                    for (
                      t.currentRenderer.flush(),
                        this._filters &&
                          t.filterManager.pushFilter(this, this._filters),
                        this._mask && t.maskManager.pushMask(this, this._mask),
                        t.currentRenderer.start(),
                        this._renderWebGL(t),
                        e = 0,
                        i = this.children.length;
                      i > e;
                      e++
                    )
                      this.children[e].renderWebGL(t);
                    t.currentRenderer.flush(),
                      this._mask && t.maskManager.popMask(this, this._mask),
                      this._filters && t.filterManager.popFilter(),
                      t.currentRenderer.start();
                  } else
                    for (
                      this._renderWebGL(t), e = 0, i = this.children.length;
                      i > e;
                      ++e
                    )
                      this.children[e].renderWebGL(t);
                }
              }),
              (i.prototype._renderWebGL = function () {}),
              (i.prototype.renderCanvas = function (t) {
                if (this.visible && !(this.alpha <= 0) && this.renderable) {
                  this._mask && t.maskManager.pushMask(this._mask, t);
                  for (var e = 0, i = this.children.length; i > e; ++e)
                    this.children[e].renderCanvas(t);
                  this._mask && t.maskManager.popMask(t);
                }
              });
          },
          {
            "../math": 23,
            "../textures/RenderTexture": 60,
            "./DisplayObject": 15,
          },
        ],
        15: [
          function (t, e) {
            function i() {
              (this.position = new r.Point()),
                (this.scale = new r.Point(1, 1)),
                (this.pivot = new r.Point(0, 0)),
                (this.rotation = 0),
                (this.alpha = 1),
                (this.visible = !0),
                (this.renderable = !0),
                (this.parent = null),
                (this.worldAlpha = 1),
                (this.worldTransform = new r.Matrix()),
                (this.filterArea = null),
                (this._sr = 0),
                (this._cr = 1),
                (this._bounds = new r.Rectangle(0, 0, 1, 1)),
                (this._currentBounds = null),
                (this._mask = null),
                (this._cacheAsBitmap = !1),
                (this._cachedObject = null);
            }
            var r = t("../math"),
              n = t("../utils"),
              o = t("../textures/RenderTexture"),
              s = new r.Matrix();
            (i.prototype.constructor = i),
              n.eventTarget.mixin(i.prototype),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                x: {
                  get: function () {
                    return this.position.x;
                  },
                  set: function (t) {
                    this.position.x = t;
                  },
                },
                y: {
                  get: function () {
                    return this.position.y;
                  },
                  set: function (t) {
                    this.position.y = t;
                  },
                },
                worldVisible: {
                  get: function () {
                    var t = this;
                    do {
                      if (!t.visible) return !1;
                      t = t.parent;
                    } while (t);
                    return !0;
                  },
                },
                mask: {
                  get: function () {
                    return this._mask;
                  },
                  set: function (t) {
                    this._mask && (this._mask.renderable = !0),
                      (this._mask = t),
                      this._mask && (this._mask.renderable = !1);
                  },
                },
                filters: {
                  get: function () {
                    return this._filters && this._filters.slice();
                  },
                  set: function (t) {
                    this._filters = t && t.slice();
                  },
                },
              }),
              (i.prototype.updateTransform = function () {
                var t,
                  e,
                  i,
                  n,
                  o,
                  s,
                  a = this.parent.worldTransform,
                  h = this.worldTransform;
                this.rotation % r.PI_2
                  ? (this.rotation !== this.rotationCache &&
                      ((this.rotationCache = this.rotation),
                      (this._sr = Math.sin(this.rotation)),
                      (this._cr = Math.cos(this.rotation))),
                    (t = this._cr * this.scale.x),
                    (e = this._sr * this.scale.x),
                    (i = -this._sr * this.scale.y),
                    (n = this._cr * this.scale.y),
                    (o = this.position.x),
                    (s = this.position.y),
                    (this.pivot.x || this.pivot.y) &&
                      ((o -= this.pivot.x * t + this.pivot.y * i),
                      (s -= this.pivot.x * e + this.pivot.y * n)),
                    (h.a = t * a.a + e * a.c),
                    (h.b = t * a.b + e * a.d),
                    (h.c = i * a.a + n * a.c),
                    (h.d = i * a.b + n * a.d),
                    (h.tx = o * a.a + s * a.c + a.tx),
                    (h.ty = o * a.b + s * a.d + a.ty))
                  : ((t = this.scale.x),
                    (n = this.scale.y),
                    (o = this.position.x - this.pivot.x * t),
                    (s = this.position.y - this.pivot.y * n),
                    (h.a = t * a.a),
                    (h.b = t * a.b),
                    (h.c = n * a.c),
                    (h.d = n * a.d),
                    (h.tx = o * a.a + s * a.c + a.tx),
                    (h.ty = o * a.b + s * a.d + a.ty)),
                  (this.worldAlpha = this.alpha * this.parent.worldAlpha),
                  (this._currentBounds = null);
              }),
              (i.prototype.displayObjectUpdateTransform =
                i.prototype.updateTransform),
              (i.prototype.getBounds = function () {
                return r.Rectangle.EMPTY;
              }),
              (i.prototype.getLocalBounds = function () {
                return this.getBounds(r.Matrix.IDENTITY);
              }),
              (i.prototype.toGlobal = function (t) {
                return (
                  this.displayObjectUpdateTransform(),
                  this.worldTransform.apply(t)
                );
              }),
              (i.prototype.toLocal = function (t, e) {
                return (
                  e && (t = e.toGlobal(t)),
                  this.displayObjectUpdateTransform(),
                  this.worldTransform.applyInverse(t)
                );
              }),
              (i.prototype.renderWebGL = function () {}),
              (i.prototype.renderCanvas = function () {}),
              (i.prototype.generateTexture = function (t, e, i) {
                var r = this.getLocalBounds(),
                  n = new o(t, 0 | r.width, 0 | r.height, t, i, e);
                return (s.tx = -r.x), (s.ty = -r.y), n.render(this, s), n;
              });
          },
          { "../math": 23, "../textures/RenderTexture": 60, "../utils": 68 },
        ],
        16: [
          function (t, e) {
            function i() {
              r.call(this),
                (this.fillAlpha = 1),
                (this.lineWidth = 0),
                (this.lineColor = 0),
                (this.graphicsData = []),
                (this.tint = 16777215),
                (this.blendMode = u.BLEND_MODES.NORMAL),
                (this.currentPath = null),
                (this._webGL = {}),
                (this.isMask = !1),
                (this.boundsPadding = 0),
                (this._localBounds = new l.Rectangle(0, 0, 1, 1)),
                (this.dirty = !0),
                (this.glDirty = !1),
                (this.cachedSpriteDirty = !1);
            }
            var r = t("../display/Container"),
              n = t("../sprites/Sprite"),
              o = t("../textures/Texture"),
              s = t("../renderers/canvas/utils/CanvasBuffer"),
              a = t("../renderers/canvas/utils/CanvasGraphics"),
              h = t("./GraphicsData"),
              l = t("../math"),
              u = t("../const");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {}),
              (h.prototype.clone = function () {
                var t = new i();
                (t.renderable = this.renderable),
                  (t.fillAlpha = this.fillAlpha),
                  (t.lineWidth = this.lineWidth),
                  (t.lineColor = this.lineColor),
                  (t.tint = this.tint),
                  (t.blendMode = this.blendMode),
                  (t.isMask = this.isMask),
                  (t.boundsPadding = this.boundsPadding),
                  (t.dirty = this.dirty),
                  (t.glDirty = this.glDirty),
                  (t.cachedSpriteDirty = this.cachedSpriteDirty);
                for (var e = 0; e < this.graphicsData.length; ++e)
                  t.graphicsData.push(this.graphicsData.clone());
                return (
                  (t.currentPath = t.graphicsData[t.graphicsData.length - 1]),
                  t.updateLocalBounds(),
                  t
                );
              }),
              (i.prototype.lineStyle = function (t, e, i) {
                return (
                  (this.lineWidth = t || 0),
                  (this.lineColor = e || 0),
                  (this.lineAlpha = arguments.length < 3 ? 1 : i),
                  this.currentPath &&
                    (this.currentPath.shape.points.length
                      ? this.drawShape(
                          new l.Polygon(this.currentPath.shape.points.slice(-2))
                        )
                      : ((this.currentPath.lineWidth = this.lineWidth),
                        (this.currentPath.lineColor = this.lineColor),
                        (this.currentPath.lineAlpha = this.lineAlpha))),
                  this
                );
              }),
              (i.prototype.moveTo = function (t, e) {
                return this.drawShape(new l.Polygon([t, e])), this;
              }),
              (i.prototype.lineTo = function (t, e) {
                return (
                  this.currentPath.shape.points.push(t, e),
                  (this.dirty = !0),
                  this
                );
              }),
              (i.prototype.quadraticCurveTo = function (t, e, i, r) {
                this.currentPath
                  ? 0 === this.currentPath.shape.points.length &&
                    (this.currentPath.shape.points = [0, 0])
                  : this.moveTo(0, 0);
                var n,
                  o,
                  s = 20,
                  a = this.currentPath.shape.points;
                0 === a.length && this.moveTo(0, 0);
                for (
                  var h = a[a.length - 2], l = a[a.length - 1], u = 0, c = 1;
                  s >= c;
                  ++c
                )
                  (u = c / s),
                    (n = h + (t - h) * u),
                    (o = l + (e - l) * u),
                    a.push(
                      n + (t + (i - t) * u - n) * u,
                      o + (e + (r - e) * u - o) * u
                    );
                return (this.dirty = !0), this;
              }),
              (i.prototype.bezierCurveTo = function (t, e, i, r, n, o) {
                this.currentPath
                  ? 0 === this.currentPath.shape.points.length &&
                    (this.currentPath.shape.points = [0, 0])
                  : this.moveTo(0, 0);
                for (
                  var s,
                    a,
                    h,
                    l,
                    u,
                    c = 20,
                    d = this.currentPath.shape.points,
                    p = d[d.length - 2],
                    f = d[d.length - 1],
                    m = 0,
                    v = 1;
                  c >= v;
                  ++v
                )
                  (m = v / c),
                    (s = 1 - m),
                    (a = s * s),
                    (h = a * s),
                    (l = m * m),
                    (u = l * m),
                    d.push(
                      h * p + 3 * a * m * t + 3 * s * l * i + u * n,
                      h * f + 3 * a * m * e + 3 * s * l * r + u * o
                    );
                return (this.dirty = !0), this;
              }),
              (i.prototype.arcTo = function (t, e, i, r, n) {
                this.currentPath
                  ? 0 === this.currentPath.shape.points.length &&
                    this.currentPath.shape.points.push(t, e)
                  : this.moveTo(t, e);
                var o = this.currentPath.shape.points,
                  s = o[o.length - 2],
                  a = o[o.length - 1],
                  h = a - e,
                  l = s - t,
                  u = r - e,
                  c = i - t,
                  d = Math.abs(h * c - l * u);
                if (1e-8 > d || 0 === n)
                  (o[o.length - 2] !== t || o[o.length - 1] !== e) &&
                    o.push(t, e);
                else {
                  var p = h * h + l * l,
                    f = u * u + c * c,
                    m = h * u + l * c,
                    v = (n * Math.sqrt(p)) / d,
                    g = (n * Math.sqrt(f)) / d,
                    y = (v * m) / p,
                    x = (g * m) / f,
                    _ = v * c + g * l,
                    b = v * u + g * h,
                    w = l * (g + y),
                    T = h * (g + y),
                    S = c * (v + x),
                    E = u * (v + x),
                    A = Math.atan2(T - b, w - _),
                    C = Math.atan2(E - b, S - _);
                  this.arc(_ + t, b + e, n, A, C, l * u > c * h);
                }
                return (this.dirty = !0), this;
              }),
              (i.prototype.arc = function (t, e, i, r, n, o) {
                var s,
                  a = t + Math.cos(r) * i,
                  h = e + Math.sin(r) * i;
                if (
                  (this.currentPath
                    ? ((s = this.currentPath.shape.points),
                      0 === s.length
                        ? s.push(a, h)
                        : (s[s.length - 2] !== a || s[s.length - 1] !== h) &&
                          s.push(a, h))
                    : (this.moveTo(a, h), (s = this.currentPath.shape.points)),
                  r === n)
                )
                  return this;
                !o && r >= n
                  ? (n += 2 * Math.PI)
                  : o && n >= r && (r += 2 * Math.PI);
                var l = o ? -1 * (r - n) : n - r,
                  u = 40 * Math.ceil(Math.abs(l) / (2 * Math.PI));
                if (0 === l) return this;
                for (
                  var c = l / (2 * u),
                    d = 2 * c,
                    p = Math.cos(c),
                    f = Math.sin(c),
                    m = u - 1,
                    v = (m % 1) / m,
                    g = 0;
                  m >= g;
                  g++
                ) {
                  var y = g + v * g,
                    x = c + r + d * y,
                    _ = Math.cos(x),
                    b = -Math.sin(x);
                  s.push((p * _ + f * b) * i + t, (p * -b + f * _) * i + e);
                }
                return (this.dirty = !0), this;
              }),
              (i.prototype.beginFill = function (t, e) {
                return (
                  (this.filling = !0),
                  (this.fillColor = t || 0),
                  (this.fillAlpha = void 0 === e ? 1 : e),
                  this.currentPath &&
                    this.currentPath.shape.points.length <= 2 &&
                    ((this.currentPath.fill = this.filling),
                    (this.currentPath.fillColor = this.fillColor),
                    (this.currentPath.fillAlpha = this.fillAlpha)),
                  this
                );
              }),
              (i.prototype.endFill = function () {
                return (
                  (this.filling = !1),
                  (this.fillColor = null),
                  (this.fillAlpha = 1),
                  this
                );
              }),
              (i.prototype.drawRect = function (t, e, i, r) {
                return this.drawShape(new l.Rectangle(t, e, i, r)), this;
              }),
              (i.prototype.drawRoundedRect = function (t, e, i, r, n) {
                return (
                  this.drawShape(new l.RoundedRectangle(t, e, i, r, n)), this
                );
              }),
              (i.prototype.drawCircle = function (t, e, i) {
                return this.drawShape(new l.Circle(t, e, i)), this;
              }),
              (i.prototype.drawEllipse = function (t, e, i, r) {
                return this.drawShape(new l.Ellipse(t, e, i, r)), this;
              }),
              (i.prototype.drawPolygon = function (t) {
                return (
                  t instanceof Array ||
                    (t = Array.prototype.slice.call(arguments)),
                  this.drawShape(new l.Polygon(t)),
                  this
                );
              }),
              (i.prototype.clear = function () {
                return (
                  (this.lineWidth = 0),
                  (this.filling = !1),
                  (this.dirty = !0),
                  (this.clearDirty = !0),
                  (this.graphicsData = []),
                  this
                );
              }),
              (i.prototype.generateTexture = function (t, e) {
                t = t || 1;
                var i = this.getBounds(),
                  r = new s(i.width * t, i.height * t),
                  n = o.fromCanvas(r.canvas, e);
                return (
                  (n.baseTexture.resolution = t),
                  r.context.scale(t, t),
                  r.context.translate(-i.x, -i.y),
                  a.renderGraphics(this, r.context),
                  n
                );
              }),
              (i.prototype._renderWebGL = function (t) {
                this.glDirty && ((this.dirty = !0), (this.glDirty = !1)),
                  t.setObjectRenderer(t.plugins.graphics),
                  t.plugins.graphics.render(this);
              }),
              (i.prototype.renderCanvas = function (t) {
                if (
                  this.visible &&
                  !(this.alpha <= 0) &&
                  this.isMask !== !0 &&
                  this.renderable
                ) {
                  if (this._cacheAsBitmap)
                    return (
                      (this.dirty || this.cachedSpriteDirty) &&
                        (this._generateCachedSprite(),
                        this.updateCachedSpriteTexture(),
                        (this.cachedSpriteDirty = !1),
                        (this.dirty = !1)),
                      (this._cachedSprite.alpha = this.alpha),
                      void n.prototype.renderCanvas.call(this._cachedSprite, t)
                    );
                  var e = t.context,
                    i = this.worldTransform;
                  this.blendMode !== t.currentBlendMode &&
                    ((t.currentBlendMode = this.blendMode),
                    (e.globalCompositeOperation =
                      t.blendModes[t.currentBlendMode])),
                    this._mask && t.maskManager.pushMask(this._mask, t);
                  var r = t.resolution;
                  e.setTransform(
                    i.a * r,
                    i.b * r,
                    i.c * r,
                    i.d * r,
                    i.tx * r,
                    i.ty * r
                  ),
                    a.renderGraphics(this, e);
                  for (var o = 0, s = this.children.length; s > o; ++o)
                    this.children[o].renderCanvas(t);
                  this._mask && t.maskManager.popMask(t);
                }
              }),
              (i.prototype.getBounds = function (t) {
                if (!this._currentBounds) {
                  if (!this.renderable) return l.Rectangle.EMPTY;
                  this.dirty &&
                    (this.updateLocalBounds(),
                    (this.glDirty = !0),
                    (this.cachedSpriteDirty = !0),
                    (this.dirty = !1));
                  var e = this._localBounds,
                    i = e.x,
                    r = e.width + e.x,
                    n = e.y,
                    o = e.height + e.y,
                    s = t || this.worldTransform,
                    a = s.a,
                    h = s.b,
                    u = s.c,
                    c = s.d,
                    d = s.tx,
                    p = s.ty,
                    f = a * r + u * o + d,
                    m = c * o + h * r + p,
                    v = a * i + u * o + d,
                    g = c * o + h * i + p,
                    y = a * i + u * n + d,
                    x = c * n + h * i + p,
                    _ = a * r + u * n + d,
                    b = c * n + h * r + p,
                    w = f,
                    T = m,
                    S = f,
                    E = m;
                  (S = S > v ? v : S),
                    (S = S > y ? y : S),
                    (S = S > _ ? _ : S),
                    (E = E > g ? g : E),
                    (E = E > x ? x : E),
                    (E = E > b ? b : E),
                    (w = v > w ? v : w),
                    (w = y > w ? y : w),
                    (w = _ > w ? _ : w),
                    (T = g > T ? g : T),
                    (T = x > T ? x : T),
                    (T = b > T ? b : T),
                    (this._bounds.x = S),
                    (this._bounds.width = w - S),
                    (this._bounds.y = E),
                    (this._bounds.height = T - E),
                    (this._currentBounds = this._bounds);
                }
                return this._currentBounds;
              }),
              (i.prototype.updateLocalBounds = function () {
                var t = 1 / 0,
                  e = -1 / 0,
                  i = 1 / 0,
                  r = -1 / 0;
                if (this.graphicsData.length)
                  for (
                    var n, o, s, a, h, l, c = 0;
                    c < this.graphicsData.length;
                    c++
                  ) {
                    var d = this.graphicsData[c],
                      p = d.type,
                      f = d.lineWidth;
                    if (
                      ((n = d.shape),
                      p === u.SHAPES.RECT || p === u.SHAPES.RREC)
                    )
                      (s = n.x - f / 2),
                        (a = n.y - f / 2),
                        (h = n.width + f),
                        (l = n.height + f),
                        (t = t > s ? s : t),
                        (e = s + h > e ? s + h : e),
                        (i = i > a ? a : i),
                        (r = a + l > r ? a + l : r);
                    else if (p === u.SHAPES.CIRC)
                      (s = n.x),
                        (a = n.y),
                        (h = n.radius + f / 2),
                        (l = n.radius + f / 2),
                        (t = t > s - h ? s - h : t),
                        (e = s + h > e ? s + h : e),
                        (i = i > a - l ? a - l : i),
                        (r = a + l > r ? a + l : r);
                    else if (p === u.SHAPES.ELIP)
                      (s = n.x),
                        (a = n.y),
                        (h = n.width + f / 2),
                        (l = n.height + f / 2),
                        (t = t > s - h ? s - h : t),
                        (e = s + h > e ? s + h : e),
                        (i = i > a - l ? a - l : i),
                        (r = a + l > r ? a + l : r);
                    else {
                      o = n.points;
                      for (var m = 0; m < o.length; m += 2)
                        (s = o[m]),
                          (a = o[m + 1]),
                          (t = t > s - f ? s - f : t),
                          (e = s + f > e ? s + f : e),
                          (i = i > a - f ? a - f : i),
                          (r = a + f > r ? a + f : r);
                    }
                  }
                else (t = 0), (e = 0), (i = 0), (r = 0);
                var v = this.boundsPadding;
                (this._localBounds.x = t - v),
                  (this._localBounds.width = e - t + 2 * v),
                  (this._localBounds.y = i - v),
                  (this._localBounds.height = r - i + 2 * v);
              }),
              (i.prototype.drawShape = function (t) {
                this.currentPath &&
                  this.currentPath.shape.points.length <= 2 &&
                  this.graphicsData.pop(),
                  (this.currentPath = null);
                var e = new h(
                  this.lineWidth,
                  this.lineColor,
                  this.lineAlpha,
                  this.fillColor,
                  this.fillAlpha,
                  this.filling,
                  t
                );
                return (
                  this.graphicsData.push(e),
                  e.type === u.SHAPES.POLY &&
                    ((e.shape.closed = this.filling), (this.currentPath = e)),
                  (this.dirty = !0),
                  e
                );
              });
          },
          {
            "../const": 13,
            "../display/Container": 14,
            "../math": 23,
            "../renderers/canvas/utils/CanvasBuffer": 35,
            "../renderers/canvas/utils/CanvasGraphics": 36,
            "../sprites/Sprite": 57,
            "../textures/Texture": 61,
            "./GraphicsData": 17,
          },
        ],
        17: [
          function (t, e) {
            function i(t, e, i, r, n, o, s) {
              (this.lineWidth = t),
                (this.lineColor = e),
                (this.lineAlpha = i),
                (this._lineTint = e),
                (this.fillColor = r),
                (this.fillAlpha = n),
                (this._fillTint = r),
                (this.fill = o),
                (this.shape = s),
                (this.type = s.type);
            }
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.clone = function () {
                return new i(
                  this.lineWidth,
                  this.lineColor,
                  this.lineAlpha,
                  this.fillColor,
                  this.fillAlpha,
                  this.fill,
                  this.shape
                );
              });
          },
          {},
        ],
        18: [
          function (t, e) {
            function i(t) {
              s.call(this, t),
                (this.graphicsDataPool = []),
                (this.primitiveShader = null),
                (this.complexPrimitiveShader = null);
            }
            var r = t("../../utils"),
              n = t("../../math"),
              o = t("../../const"),
              s = t("../../renderers/webgl/utils/ObjectRenderer"),
              a = t("../../renderers/webgl/WebGLRenderer"),
              h = t("./WebGLGraphicsData");
            (i.prototype = Object.create(s.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              a.registerPlugin("graphics", i),
              (i.prototype.onContextChange = function () {}),
              (i.prototype.destroy = function () {
                s.prototype.destroy.call(this), (this.graphicsDataPool = null);
              }),
              (i.prototype.render = function (t) {
                var e,
                  i = this.renderer,
                  n = i.gl,
                  o = i.shaderManager.plugins.primitiveShader;
                t.dirty && this.updateGraphics(t, n);
                var s = t._webGL[n.id];
                i.blendModeManager.setBlendMode(t.blendMode);
                for (var a = 0; a < s.data.length; a++)
                  1 === s.data[a].mode
                    ? ((e = s.data[a]),
                      i.stencilManager.pushStencil(t, e, i),
                      n.drawElements(
                        n.TRIANGLE_FAN,
                        4,
                        n.UNSIGNED_SHORT,
                        2 * (e.indices.length - 4)
                      ),
                      i.stencilManager.popStencil(t, e, i))
                    : ((e = s.data[a]),
                      (o = i.shaderManager.primitiveShader),
                      i.shaderManager.setShader(o),
                      n.uniformMatrix3fv(
                        o.uniforms.translationMatrix._location,
                        !1,
                        t.worldTransform.toArray(!0)
                      ),
                      n.uniformMatrix3fv(
                        o.uniforms.projectionMatrix._location,
                        !1,
                        i.currentRenderTarget.projectionMatrix.toArray(!0)
                      ),
                      n.uniform3fv(
                        o.uniforms.tint._location,
                        r.hex2rgb(t.tint)
                      ),
                      n.uniform1f(o.uniforms.alpha._location, t.worldAlpha),
                      n.bindBuffer(n.ARRAY_BUFFER, e.buffer),
                      n.vertexAttribPointer(
                        o.attributes.aVertexPosition,
                        2,
                        n.FLOAT,
                        !1,
                        24,
                        0
                      ),
                      n.vertexAttribPointer(
                        o.attributes.aColor,
                        4,
                        n.FLOAT,
                        !1,
                        24,
                        8
                      ),
                      n.bindBuffer(n.ELEMENT_ARRAY_BUFFER, e.indexBuffer),
                      n.drawElements(
                        n.TRIANGLE_STRIP,
                        e.indices.length,
                        n.UNSIGNED_SHORT,
                        0
                      ));
              }),
              (i.prototype.updateGraphics = function (t) {
                var e = this.renderer.gl,
                  i = t._webGL[e.id];
                i || (i = t._webGL[e.id] = { lastIndex: 0, data: [], gl: e }),
                  (t.dirty = !1);
                var r;
                if (t.clearDirty) {
                  for (t.clearDirty = !1, r = 0; r < i.data.length; r++) {
                    var n = i.data[r];
                    n.reset(), this.graphicsDataPool.push(n);
                  }
                  (i.data = []), (i.lastIndex = 0);
                }
                var s;
                for (r = i.lastIndex; r < t.graphicsData.length; r++) {
                  var a = t.graphicsData[r];
                  if (a.type === o.SHAPES.POLY) {
                    if (
                      ((a.points = a.shape.points.slice()),
                      a.shape.closed &&
                        (a.points[0] !== a.points[a.points.length - 2] ||
                          a.points[1] !== a.points[a.points.length - 1]) &&
                        a.points.push(a.points[0], a.points[1]),
                      a.fill && a.points.length >= 6)
                    )
                      if (a.points.length < 12) {
                        s = this.switchMode(i, 0);
                        var h = this.buildPoly(a, s);
                        h ||
                          ((s = this.switchMode(i, 1)),
                          this.buildComplexPoly(a, s));
                      } else
                        (s = this.switchMode(i, 1)),
                          this.buildComplexPoly(a, s);
                    a.lineWidth > 0 &&
                      ((s = this.switchMode(i, 0)), this.buildLine(a, s));
                  } else
                    (s = this.switchMode(i, 0)),
                      a.type === o.SHAPES.RECT
                        ? this.buildRectangle(a, s)
                        : a.type === o.SHAPES.CIRC || a.type === o.SHAPES.ELIP
                        ? this.buildCircle(a, s)
                        : a.type === o.SHAPES.RREC &&
                          this.buildRoundedRectangle(a, s);
                  i.lastIndex++;
                }
                for (r = 0; r < i.data.length; r++)
                  (s = i.data[r]), s.dirty && s.upload();
              }),
              (i.prototype.switchMode = function (t, e) {
                var i;
                return (
                  t.data.length
                    ? ((i = t.data[t.data.length - 1]),
                      (i.points.length > 32e4 || i.mode !== e || 1 === e) &&
                        ((i = this.graphicsDataPool.pop() || new h(t.gl)),
                        (i.mode = e),
                        t.data.push(i)))
                    : ((i = this.graphicsDataPool.pop() || new h(t.gl)),
                      (i.mode = e),
                      t.data.push(i)),
                  (i.dirty = !0),
                  i
                );
              }),
              (i.prototype.buildRectangle = function (t, e) {
                var i = t.shape,
                  n = i.x,
                  o = i.y,
                  s = i.width,
                  a = i.height;
                if (t.fill) {
                  var h = r.hex2rgb(t.fillColor),
                    l = t.fillAlpha,
                    u = h[0] * l,
                    c = h[1] * l,
                    d = h[2] * l,
                    p = e.points,
                    f = e.indices,
                    m = p.length / 6;
                  p.push(n, o),
                    p.push(u, c, d, l),
                    p.push(n + s, o),
                    p.push(u, c, d, l),
                    p.push(n, o + a),
                    p.push(u, c, d, l),
                    p.push(n + s, o + a),
                    p.push(u, c, d, l),
                    f.push(m, m, m + 1, m + 2, m + 3, m + 3);
                }
                if (t.lineWidth) {
                  var v = t.points;
                  (t.points = [n, o, n + s, o, n + s, o + a, n, o + a, n, o]),
                    this.buildLine(t, e),
                    (t.points = v);
                }
              }),
              (i.prototype.buildRoundedRectangle = function (t, e) {
                var i = t.shape,
                  n = i.x,
                  o = i.y,
                  s = i.width,
                  a = i.height,
                  h = i.radius,
                  l = [];
                if (
                  (l.push(n, o + h),
                  (l = l.concat(
                    this.quadraticBezierCurve(
                      n,
                      o + a - h,
                      n,
                      o + a,
                      n + h,
                      o + a
                    )
                  )),
                  (l = l.concat(
                    this.quadraticBezierCurve(
                      n + s - h,
                      o + a,
                      n + s,
                      o + a,
                      n + s,
                      o + a - h
                    )
                  )),
                  (l = l.concat(
                    this.quadraticBezierCurve(
                      n + s,
                      o + h,
                      n + s,
                      o,
                      n + s - h,
                      o
                    )
                  )),
                  (l = l.concat(
                    this.quadraticBezierCurve(n + h, o, n, o, n, o + h)
                  )),
                  t.fill)
                ) {
                  var u = r.hex2rgb(t.fillColor),
                    c = t.fillAlpha,
                    d = u[0] * c,
                    p = u[1] * c,
                    f = u[2] * c,
                    m = e.points,
                    v = e.indices,
                    g = m.length / 6,
                    y = r.PolyK.Triangulate(l),
                    x = 0;
                  for (x = 0; x < y.length; x += 3)
                    v.push(y[x] + g),
                      v.push(y[x] + g),
                      v.push(y[x + 1] + g),
                      v.push(y[x + 2] + g),
                      v.push(y[x + 2] + g);
                  for (x = 0; x < l.length; x++)
                    m.push(l[x], l[++x], d, p, f, c);
                }
                if (t.lineWidth) {
                  var _ = t.points;
                  (t.points = l), this.buildLine(t, e), (t.points = _);
                }
              }),
              (i.prototype.quadraticBezierCurve = function (t, e, i, r, n, o) {
                function s(t, e, i) {
                  var r = e - t;
                  return t + r * i;
                }
                for (
                  var a, h, l, u, c, d, p = 20, f = [], m = 0, v = 0;
                  p >= v;
                  v++
                )
                  (m = v / p),
                    (a = s(t, i, m)),
                    (h = s(e, r, m)),
                    (l = s(i, n, m)),
                    (u = s(r, o, m)),
                    (c = s(a, l, m)),
                    (d = s(h, u, m)),
                    f.push(c, d);
                return f;
              }),
              (i.prototype.buildCircle = function (t, e) {
                var i,
                  n,
                  s = t.shape,
                  a = s.x,
                  h = s.y;
                t.type === o.SHAPES.CIRC
                  ? ((i = s.radius), (n = s.radius))
                  : ((i = s.width), (n = s.height));
                var l = 40,
                  u = (2 * Math.PI) / l,
                  c = 0;
                if (t.fill) {
                  var d = r.hex2rgb(t.fillColor),
                    p = t.fillAlpha,
                    f = d[0] * p,
                    m = d[1] * p,
                    v = d[2] * p,
                    g = e.points,
                    y = e.indices,
                    x = g.length / 6;
                  for (y.push(x), c = 0; l + 1 > c; c++)
                    g.push(a, h, f, m, v, p),
                      g.push(
                        a + Math.sin(u * c) * i,
                        h + Math.cos(u * c) * n,
                        f,
                        m,
                        v,
                        p
                      ),
                      y.push(x++, x++);
                  y.push(x - 1);
                }
                if (t.lineWidth) {
                  var _ = t.points;
                  for (t.points = [], c = 0; l + 1 > c; c++)
                    t.points.push(
                      a + Math.sin(u * c) * i,
                      h + Math.cos(u * c) * n
                    );
                  this.buildLine(t, e), (t.points = _);
                }
              }),
              (i.prototype.buildLine = function (t, e) {
                var i = 0,
                  o = t.points;
                if (0 !== o.length) {
                  if (t.lineWidth % 2)
                    for (i = 0; i < o.length; i++) o[i] += 0.5;
                  var s = new n.Point(o[0], o[1]),
                    a = new n.Point(o[o.length - 2], o[o.length - 1]);
                  if (s.x === a.x && s.y === a.y) {
                    (o = o.slice()),
                      o.pop(),
                      o.pop(),
                      (a = new n.Point(o[o.length - 2], o[o.length - 1]));
                    var h = a.x + 0.5 * (s.x - a.x),
                      l = a.y + 0.5 * (s.y - a.y);
                    o.unshift(h, l), o.push(h, l);
                  }
                  var u,
                    c,
                    d,
                    p,
                    f,
                    m,
                    v,
                    g,
                    y,
                    x,
                    _,
                    b,
                    w,
                    T,
                    S,
                    E,
                    A,
                    C,
                    M,
                    R,
                    P,
                    O,
                    D,
                    F = e.points,
                    L = e.indices,
                    k = o.length / 2,
                    I = o.length,
                    B = F.length / 6,
                    N = t.lineWidth / 2,
                    U = r.hex2rgb(t.lineColor),
                    X = t.lineAlpha,
                    j = U[0] * X,
                    z = U[1] * X,
                    Y = U[2] * X;
                  for (
                    d = o[0],
                      p = o[1],
                      f = o[2],
                      m = o[3],
                      y = -(p - m),
                      x = d - f,
                      D = Math.sqrt(y * y + x * x),
                      y /= D,
                      x /= D,
                      y *= N,
                      x *= N,
                      F.push(d - y, p - x, j, z, Y, X),
                      F.push(d + y, p + x, j, z, Y, X),
                      i = 1;
                    k - 1 > i;
                    i++
                  )
                    (d = o[2 * (i - 1)]),
                      (p = o[2 * (i - 1) + 1]),
                      (f = o[2 * i]),
                      (m = o[2 * i + 1]),
                      (v = o[2 * (i + 1)]),
                      (g = o[2 * (i + 1) + 1]),
                      (y = -(p - m)),
                      (x = d - f),
                      (D = Math.sqrt(y * y + x * x)),
                      (y /= D),
                      (x /= D),
                      (y *= N),
                      (x *= N),
                      (_ = -(m - g)),
                      (b = f - v),
                      (D = Math.sqrt(_ * _ + b * b)),
                      (_ /= D),
                      (b /= D),
                      (_ *= N),
                      (b *= N),
                      (S = -x + p - (-x + m)),
                      (E = -y + f - (-y + d)),
                      (A = (-y + d) * (-x + m) - (-y + f) * (-x + p)),
                      (C = -b + g - (-b + m)),
                      (M = -_ + f - (-_ + v)),
                      (R = (-_ + v) * (-b + m) - (-_ + f) * (-b + g)),
                      (P = S * M - C * E),
                      Math.abs(P) < 0.1
                        ? ((P += 10.1),
                          F.push(f - y, m - x, j, z, Y, X),
                          F.push(f + y, m + x, j, z, Y, X))
                        : ((u = (E * R - M * A) / P),
                          (c = (C * A - S * R) / P),
                          (O = (u - f) * (u - f) + (c - m) + (c - m)),
                          O > 19600
                            ? ((w = y - _),
                              (T = x - b),
                              (D = Math.sqrt(w * w + T * T)),
                              (w /= D),
                              (T /= D),
                              (w *= N),
                              (T *= N),
                              F.push(f - w, m - T),
                              F.push(j, z, Y, X),
                              F.push(f + w, m + T),
                              F.push(j, z, Y, X),
                              F.push(f - w, m - T),
                              F.push(j, z, Y, X),
                              I++)
                            : (F.push(u, c),
                              F.push(j, z, Y, X),
                              F.push(f - (u - f), m - (c - m)),
                              F.push(j, z, Y, X)));
                  for (
                    d = o[2 * (k - 2)],
                      p = o[2 * (k - 2) + 1],
                      f = o[2 * (k - 1)],
                      m = o[2 * (k - 1) + 1],
                      y = -(p - m),
                      x = d - f,
                      D = Math.sqrt(y * y + x * x),
                      y /= D,
                      x /= D,
                      y *= N,
                      x *= N,
                      F.push(f - y, m - x),
                      F.push(j, z, Y, X),
                      F.push(f + y, m + x),
                      F.push(j, z, Y, X),
                      L.push(B),
                      i = 0;
                    I > i;
                    i++
                  )
                    L.push(B++);
                  L.push(B - 1);
                }
              }),
              (i.prototype.buildComplexPoly = function (t, e) {
                var i = t.points.slice();
                if (!(i.length < 6)) {
                  var n = e.indices;
                  (e.points = i),
                    (e.alpha = t.fillAlpha),
                    (e.color = r.hex2rgb(t.fillColor));
                  for (
                    var o,
                      s,
                      a = 1 / 0,
                      h = -1 / 0,
                      l = 1 / 0,
                      u = -1 / 0,
                      c = 0;
                    c < i.length;
                    c += 2
                  )
                    (o = i[c]),
                      (s = i[c + 1]),
                      (a = a > o ? o : a),
                      (h = o > h ? o : h),
                      (l = l > s ? s : l),
                      (u = s > u ? s : u);
                  i.push(a, l, h, l, h, u, a, u);
                  var d = i.length / 2;
                  for (c = 0; d > c; c++) n.push(c);
                }
              }),
              (i.prototype.buildPoly = function (t, e) {
                var i = t.points;
                if (!(i.length < 6)) {
                  var n = e.points,
                    o = e.indices,
                    s = i.length / 2,
                    a = r.hex2rgb(t.fillColor),
                    h = t.fillAlpha,
                    l = a[0] * h,
                    u = a[1] * h,
                    c = a[2] * h,
                    d = r.PolyK.Triangulate(i);
                  if (!d) return !1;
                  var p = n.length / 6,
                    f = 0;
                  for (f = 0; f < d.length; f += 3)
                    o.push(d[f] + p),
                      o.push(d[f] + p),
                      o.push(d[f + 1] + p),
                      o.push(d[f + 2] + p),
                      o.push(d[f + 2] + p);
                  for (f = 0; s > f; f++)
                    n.push(i[2 * f], i[2 * f + 1], l, u, c, h);
                  return !0;
                }
              });
          },
          {
            "../../const": 13,
            "../../math": 23,
            "../../renderers/webgl/WebGLRenderer": 39,
            "../../renderers/webgl/utils/ObjectRenderer": 53,
            "../../utils": 68,
            "./WebGLGraphicsData": 19,
          },
        ],
        19: [
          function (t, e) {
            function i(t) {
              (this.gl = t),
                (this.color = [0, 0, 0]),
                (this.points = []),
                (this.indices = []),
                (this.buffer = t.createBuffer()),
                (this.indexBuffer = t.createBuffer()),
                (this.mode = 1),
                (this.alpha = 1),
                (this.dirty = !0);
            }
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.reset = function () {
                (this.points = []), (this.indices = []);
              }),
              (i.prototype.upload = function () {
                var t = this.gl;
                (this.glPoints = new Float32Array(this.points)),
                  t.bindBuffer(t.ARRAY_BUFFER, this.buffer),
                  t.bufferData(t.ARRAY_BUFFER, this.glPoints, t.STATIC_DRAW),
                  (this.glIndicies = new Uint16Array(this.indices)),
                  t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this.indexBuffer),
                  t.bufferData(
                    t.ELEMENT_ARRAY_BUFFER,
                    this.glIndicies,
                    t.STATIC_DRAW
                  ),
                  (this.dirty = !1);
              });
          },
          {},
        ],
        20: [
          function (t, e) {
            function i() {
              try {
                if (!window.WebGLRenderingContext) return !1;
                var t = document.createElement("canvas"),
                  e =
                    t.getContext("webgl", s) ||
                    t.getContext("experimental-webgl", s);
                return !(!e || !e.getContextAttributes().stencil);
              } catch (i) {
                return !1;
              }
            }
            var r = (e.exports = {
                utils: t("./utils"),
                math: t("./math"),
                CONST: t("./const"),
                DisplayObject: t("./display/DisplayObject"),
                Container: t("./display/Container"),
                Stage: t("./display/Container"),
                DisplayObjectContainer: t("./display/Container"),
                Sprite: t("./sprites/Sprite"),
                ParticleContainer: t("./particles/ParticleContainer"),
                SpriteRenderer: t("./sprites/webgl/SpriteRenderer"),
                ParticleRenderer: t("./particles/webgl/ParticleRenderer"),
                Graphics: t("./graphics/Graphics"),
                GraphicsData: t("./graphics/GraphicsData"),
                GraphicsRenderer: t("./graphics/webgl/GraphicsRenderer"),
                Texture: t("./textures/Texture"),
                BaseTexture: t("./textures/BaseTexture"),
                RenderTexture: t("./textures/RenderTexture"),
                VideoBaseTexture: t("./textures/VideoBaseTexture"),
                CanvasRenderer: t("./renderers/canvas/CanvasRenderer"),
                CanvasGraphics: t("./renderers/canvas/utils/CanvasGraphics"),
                CanvasBuffer: t("./renderers/canvas/utils/CanvasBuffer"),
                WebGLRenderer: t("./renderers/webgl/WebGLRenderer"),
                ShaderManager: t("./renderers/webgl/managers/ShaderManager"),
                Shader: t("./renderers/webgl/shaders/Shader"),
                AbstractFilter: t("./renderers/webgl/filters/AbstractFilter"),
                autoDetectRenderer: function (t, e, n, o) {
                  return (
                    (t = t || 800),
                    (e = e || 600),
                    !o && i()
                      ? new r.WebGLRenderer(t, e, n)
                      : new r.CanvasRenderer(t, e, n)
                  );
                },
              }),
              n = t("./const");
            for (var o in n) r[o] = n[o];
            var s = { stencil: !0 };
          },
          {
            "./const": 13,
            "./display/Container": 14,
            "./display/DisplayObject": 15,
            "./graphics/Graphics": 16,
            "./graphics/GraphicsData": 17,
            "./graphics/webgl/GraphicsRenderer": 18,
            "./math": 23,
            "./particles/ParticleContainer": 29,
            "./particles/webgl/ParticleRenderer": 31,
            "./renderers/canvas/CanvasRenderer": 34,
            "./renderers/canvas/utils/CanvasBuffer": 35,
            "./renderers/canvas/utils/CanvasGraphics": 36,
            "./renderers/webgl/WebGLRenderer": 39,
            "./renderers/webgl/filters/AbstractFilter": 40,
            "./renderers/webgl/managers/ShaderManager": 46,
            "./renderers/webgl/shaders/Shader": 51,
            "./sprites/Sprite": 57,
            "./sprites/webgl/SpriteRenderer": 58,
            "./textures/BaseTexture": 59,
            "./textures/RenderTexture": 60,
            "./textures/Texture": 61,
            "./textures/VideoBaseTexture": 63,
            "./utils": 68,
          },
        ],
        21: [
          function (t, e) {
            function i() {
              (this.a = 1),
                (this.b = 0),
                (this.c = 0),
                (this.d = 1),
                (this.tx = 0),
                (this.ty = 0);
            }
            var r = t("./Point");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.fromArray = function (t) {
                (this.a = t[0]),
                  (this.b = t[1]),
                  (this.c = t[3]),
                  (this.d = t[4]),
                  (this.tx = t[2]),
                  (this.ty = t[5]);
              }),
              (i.prototype.toArray = function (t) {
                this.array || (this.array = new Float32Array(9));
                var e = this.array;
                return (
                  t
                    ? ((e[0] = this.a),
                      (e[1] = this.b),
                      (e[2] = 0),
                      (e[3] = this.c),
                      (e[4] = this.d),
                      (e[5] = 0),
                      (e[6] = this.tx),
                      (e[7] = this.ty),
                      (e[8] = 1))
                    : ((e[0] = this.a),
                      (e[1] = this.c),
                      (e[2] = this.tx),
                      (e[3] = this.b),
                      (e[4] = this.d),
                      (e[5] = this.ty),
                      (e[6] = 0),
                      (e[7] = 0),
                      (e[8] = 1)),
                  e
                );
              }),
              (i.prototype.apply = function (t, e) {
                e = e || new r();
                var i = t.x,
                  n = t.y;
                return (
                  (e.x = this.a * i + this.c * n + this.tx),
                  (e.y = this.b * i + this.d * n + this.ty),
                  e
                );
              }),
              (i.prototype.applyInverse = function (t, e) {
                e = e || new r();
                var i = 1 / (this.a * this.d + this.c * -this.b),
                  n = t.x,
                  o = t.y;
                return (
                  (e.x =
                    this.d * i * n +
                    -this.c * i * o +
                    (this.ty * this.c - this.tx * this.d) * i),
                  (e.y =
                    this.a * i * o +
                    -this.b * i * n +
                    (-this.ty * this.a + this.tx * this.b) * i),
                  e
                );
              }),
              (i.prototype.translate = function (t, e) {
                return (this.tx += t), (this.ty += e), this;
              }),
              (i.prototype.scale = function (t, e) {
                return (
                  (this.a *= t),
                  (this.d *= e),
                  (this.c *= t),
                  (this.b *= e),
                  (this.tx *= t),
                  (this.ty *= e),
                  this
                );
              }),
              (i.prototype.rotate = function (t) {
                var e = Math.cos(t),
                  i = Math.sin(t),
                  r = this.a,
                  n = this.c,
                  o = this.tx;
                return (
                  (this.a = r * e - this.b * i),
                  (this.b = r * i + this.b * e),
                  (this.c = n * e - this.d * i),
                  (this.d = n * i + this.d * e),
                  (this.tx = o * e - this.ty * i),
                  (this.ty = o * i + this.ty * e),
                  this
                );
              }),
              (i.prototype.append = function (t) {
                var e = this.a,
                  i = this.b,
                  r = this.c,
                  n = this.d;
                return (
                  (this.a = t.a * e + t.b * r),
                  (this.b = t.a * i + t.b * n),
                  (this.c = t.c * e + t.d * r),
                  (this.d = t.c * i + t.d * n),
                  (this.tx = t.tx * e + t.ty * r + this.tx),
                  (this.ty = t.tx * i + t.ty * n + this.ty),
                  this
                );
              }),
              (i.prototype.prepend = function (t) {
                var e = this.tx;
                if (1 !== t.a || 0 !== t.b || 0 !== t.c || 1 !== t.d) {
                  var i = this.a,
                    r = this.c;
                  (this.a = i * t.a + this.b * t.c),
                    (this.b = i * t.b + this.b * t.d),
                    (this.c = r * t.a + this.d * t.c),
                    (this.d = r * t.b + this.d * t.d);
                }
                return (
                  (this.tx = e * t.a + this.ty * t.c + t.tx),
                  (this.ty = e * t.b + this.ty * t.d + t.ty),
                  this
                );
              }),
              (i.prototype.invert = function () {
                var t = this.a,
                  e = this.b,
                  i = this.c,
                  r = this.d,
                  n = this.tx,
                  o = t * r - e * i;
                return (
                  (this.a = r / o),
                  (this.b = -e / o),
                  (this.c = -i / o),
                  (this.d = t / o),
                  (this.tx = (i * this.ty - r * n) / o),
                  (this.ty = -(t * this.ty - e * n) / o),
                  this
                );
              }),
              (i.prototype.identity = function () {
                return (
                  (this.a = 1),
                  (this.b = 0),
                  (this.c = 0),
                  (this.d = 1),
                  (this.tx = 0),
                  (this.ty = 0),
                  this
                );
              }),
              (i.prototype.clone = function () {
                var t = new i();
                return (
                  (t.a = this.a),
                  (t.b = this.b),
                  (t.c = this.c),
                  (t.d = this.d),
                  (t.tx = this.tx),
                  (t.ty = this.ty),
                  t
                );
              }),
              (i.prototype.copy = function (t) {
                return (
                  (t.a = this.a),
                  (t.b = this.b),
                  (t.c = this.c),
                  (t.d = this.d),
                  (t.tx = this.tx),
                  (t.ty = this.ty),
                  t
                );
              }),
              (i.IDENTITY = new i()),
              (i.TEMP_MATRIX = new i());
          },
          { "./Point": 22 },
        ],
        22: [
          function (t, e) {
            function i(t, e) {
              (this.x = t || 0), (this.y = e || 0);
            }
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.clone = function () {
                return new i(this.x, this.y);
              }),
              (i.prototype.set = function (t, e) {
                (this.x = t || 0), (this.y = e || (0 !== e ? this.x : 0));
              });
          },
          {},
        ],
        23: [
          function (t, e) {
            e.exports = {
              PI_2: 2 * Math.PI,
              RAD_TO_DEG: 180 / Math.PI,
              DEG_TO_RAD: Math.PI / 180,
              Point: t("./Point"),
              Matrix: t("./Matrix"),
              Circle: t("./shapes/Circle"),
              Ellipse: t("./shapes/Ellipse"),
              Polygon: t("./shapes/Polygon"),
              Rectangle: t("./shapes/Rectangle"),
              RoundedRectangle: t("./shapes/RoundedRectangle"),
            };
          },
          {
            "./Matrix": 21,
            "./Point": 22,
            "./shapes/Circle": 24,
            "./shapes/Ellipse": 25,
            "./shapes/Polygon": 26,
            "./shapes/Rectangle": 27,
            "./shapes/RoundedRectangle": 28,
          },
        ],
        24: [
          function (t, e) {
            function i(t, e, i) {
              (this.x = t || 0),
                (this.y = e || 0),
                (this.radius = i || 0),
                (this.type = n.SHAPES.CIRC);
            }
            var r = t("./Rectangle"),
              n = t("../../const");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.clone = function () {
                return new i(this.x, this.y, this.radius);
              }),
              (i.prototype.contains = function (t, e) {
                if (this.radius <= 0) return !1;
                var i = this.x - t,
                  r = this.y - e,
                  n = this.radius * this.radius;
                return (i *= i), (r *= r), n >= i + r;
              }),
              (i.prototype.getBounds = function () {
                return new r(
                  this.x - this.radius,
                  this.y - this.radius,
                  2 * this.radius,
                  2 * this.radius
                );
              });
          },
          { "../../const": 13, "./Rectangle": 27 },
        ],
        25: [
          function (t, e) {
            function i(t, e, i, r) {
              (this.x = t || 0),
                (this.y = e || 0),
                (this.width = i || 0),
                (this.height = r || 0),
                (this.type = n.SHAPES.ELIP);
            }
            var r = t("./Rectangle"),
              n = t("../../const");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.clone = function () {
                return new i(this.x, this.y, this.width, this.height);
              }),
              (i.prototype.contains = function (t, e) {
                if (this.width <= 0 || this.height <= 0) return !1;
                var i = (t - this.x) / this.width,
                  r = (e - this.y) / this.height;
                return (i *= i), (r *= r), 1 >= i + r;
              }),
              (i.prototype.getBounds = function () {
                return new r(
                  this.x - this.width,
                  this.y - this.height,
                  this.width,
                  this.height
                );
              });
          },
          { "../../const": 13, "./Rectangle": 27 },
        ],
        26: [
          function (t, e) {
            function i(t) {
              if (
                (t instanceof Array ||
                  (t = Array.prototype.slice.call(arguments)),
                t[0] instanceof r)
              ) {
                for (var e = [], i = 0, o = t.length; o > i; i++)
                  e.push(t[i].x, t[i].y);
                t = e;
              }
              (this.closed = !0),
                (this.points = t),
                (this.type = n.SHAPES.POLY);
            }
            var r = t("../Point"),
              n = t("../../const");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.clone = function () {
                return new i(this.points.slice());
              }),
              (i.prototype.contains = function (t, e) {
                for (
                  var i = !1, r = this.points.length / 2, n = 0, o = r - 1;
                  r > n;
                  o = n++
                ) {
                  var s = this.points[2 * n],
                    a = this.points[2 * n + 1],
                    h = this.points[2 * o],
                    l = this.points[2 * o + 1],
                    u = a > e != l > e && ((h - s) * (e - a)) / (l - a) + s > t;
                  u && (i = !i);
                }
                return i;
              });
          },
          { "../../const": 13, "../Point": 22 },
        ],
        27: [
          function (t, e) {
            function i(t, e, i, n) {
              (this.x = t || 0),
                (this.y = e || 0),
                (this.width = i || 0),
                (this.height = n || 0),
                (this.type = r.SHAPES.RECT);
            }
            var r = t("../../const");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.EMPTY = new i(0, 0, 0, 0)),
              (i.prototype.clone = function () {
                return new i(this.x, this.y, this.width, this.height);
              }),
              (i.prototype.contains = function (t, e) {
                return this.width <= 0 || this.height <= 0
                  ? !1
                  : t >= this.x &&
                    t < this.x + this.width &&
                    e >= this.y &&
                    e < this.y + this.height
                  ? !0
                  : !1;
              });
          },
          { "../../const": 13 },
        ],
        28: [
          function (t, e) {
            function i(t, e, i, n, o) {
              (this.x = t || 0),
                (this.y = e || 0),
                (this.width = i || 0),
                (this.height = n || 0),
                (this.radius = o || 20),
                (this.type = r.SHAPES.RREC);
            }
            var r = t("../../const");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.clone = function () {
                return new i(
                  this.x,
                  this.y,
                  this.width,
                  this.height,
                  this.radius
                );
              }),
              (i.prototype.contains = function (t, e) {
                return this.width <= 0 || this.height <= 0
                  ? !1
                  : t >= this.x &&
                    t <= this.x + this.width &&
                    e >= this.y &&
                    e <= this.y + this.height
                  ? !0
                  : !1;
              });
          },
          { "../../const": 13 },
        ],
        29: [
          function (t, e) {
            function i(t, e) {
              r.call(this),
                (this._properties = e || [!1, !0, !1, !1, !1]),
                (this._size = t || 15e3),
                (this._buffers = null),
                (this._updateStatic = !1),
                (this.interactiveChildren = !1);
            }
            var r = t("../display/Container");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.updateTransform = function () {
                this.displayObjectUpdateTransform();
              }),
              (i.prototype.renderWebGL = function (t) {
                this.visible &&
                  !(this.worldAlpha <= 0) &&
                  this.children.length &&
                  this.renderable &&
                  (t.setObjectRenderer(t.plugins.particle),
                  t.plugins.particle.render(this));
              }),
              (i.prototype.addChildAt = function (t, e) {
                if (t === this) return t;
                if (e >= 0 && e <= this.children.length)
                  return (
                    t.parent && t.parent.removeChild(t),
                    (t.parent = this),
                    this.children.splice(e, 0, t),
                    (this._updateStatic = !0),
                    t
                  );
                throw new Error(
                  t +
                    "addChildAt: The index " +
                    e +
                    " supplied is out of bounds " +
                    this.children.length
                );
              }),
              (i.prototype.removeChildAt = function (t) {
                var e = this.getChildAt(t);
                return (
                  (e.parent = null),
                  this.children.splice(t, 1),
                  (this._updateStatic = !0),
                  e
                );
              }),
              (i.prototype.renderCanvas = function (t) {
                if (
                  this.visible &&
                  !(this.worldAlpha <= 0) &&
                  this.children.length &&
                  this.renderable
                ) {
                  var e = t.context,
                    i = this.worldTransform,
                    r = !0;
                  (e.globalAlpha = this.worldAlpha),
                    this.displayObjectUpdateTransform();
                  for (var n = 0; n < this.children.length; ++n) {
                    var o = this.children[n];
                    if (o.visible) {
                      var s = o.texture.frame;
                      if (
                        ((e.globalAlpha = this.worldAlpha * o.alpha),
                        o.rotation % (2 * Math.PI) === 0)
                      )
                        r &&
                          (e.setTransform(i.a, i.b, i.c, i.d, i.tx, i.ty),
                          (r = !1)),
                          e.drawImage(
                            o.texture.baseTexture.source,
                            s.x,
                            s.y,
                            s.width,
                            s.height,
                            (o.anchor.x * -s.width * o.scale.x +
                              o.position.x +
                              0.5) |
                              0,
                            (o.anchor.y * -s.height * o.scale.y +
                              o.position.y +
                              0.5) |
                              0,
                            s.width * o.scale.x,
                            s.height * o.scale.y
                          );
                      else {
                        r || (r = !0), o.displayObjectUpdateTransform();
                        var a = o.worldTransform;
                        t.roundPixels
                          ? e.setTransform(
                              a.a,
                              a.b,
                              a.c,
                              a.d,
                              0 | a.tx,
                              0 | a.ty
                            )
                          : e.setTransform(a.a, a.b, a.c, a.d, a.tx, a.ty),
                          e.drawImage(
                            o.texture.baseTexture.source,
                            s.x,
                            s.y,
                            s.width,
                            s.height,
                            (o.anchor.x * -s.width + 0.5) | 0,
                            (o.anchor.y * -s.height + 0.5) | 0,
                            s.width,
                            s.height
                          );
                      }
                    }
                  }
                }
              });
          },
          { "../display/Container": 14 },
        ],
        30: [
          function (t, e) {
            function i(t, e, i) {
              (this.gl = t),
                (this.vertSize = 2),
                (this.vertByteSize = 4 * this.vertSize),
                (this.size = i),
                (this.dynamicProperties = []),
                (this.staticProperties = []);
              for (var r = 0; r < e.length; r++) {
                var n = e[r];
                n.dynamic
                  ? this.dynamicProperties.push(n)
                  : this.staticProperties.push(n);
              }
              (this.staticStride = 0),
                (this.staticBuffer = null),
                (this.staticData = null),
                (this.dynamicStride = 0),
                (this.dynamicBuffer = null),
                (this.dynamicData = null),
                this.initBuffers();
            }
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.initBuffers = function () {
                var t,
                  e,
                  i = this.gl,
                  r = 0;
                for (
                  this.dynamicStride = 0, t = 0;
                  t < this.dynamicProperties.length;
                  t++
                )
                  (e = this.dynamicProperties[t]),
                    (e.offset = r),
                    (r += e.size),
                    (this.dynamicStride += e.size);
                (this.dynamicData = new Float32Array(
                  this.size * this.dynamicStride * 4
                )),
                  (this.dynamicBuffer = i.createBuffer()),
                  i.bindBuffer(i.ARRAY_BUFFER, this.dynamicBuffer),
                  i.bufferData(
                    i.ARRAY_BUFFER,
                    this.dynamicData,
                    i.DYNAMIC_DRAW
                  );
                var n = 0;
                for (
                  this.staticStride = 0, t = 0;
                  t < this.staticProperties.length;
                  t++
                )
                  (e = this.staticProperties[t]),
                    (e.offset = n),
                    (n += e.size),
                    (this.staticStride += e.size);
                (this.staticData = new Float32Array(
                  this.size * this.staticStride * 4
                )),
                  (this.staticBuffer = i.createBuffer()),
                  i.bindBuffer(i.ARRAY_BUFFER, this.staticBuffer),
                  i.bufferData(i.ARRAY_BUFFER, this.staticData, i.DYNAMIC_DRAW);
              }),
              (i.prototype.uploadDynamic = function (t, e, i) {
                for (
                  var r = this.gl, n = 0;
                  n < this.dynamicProperties.length;
                  n++
                ) {
                  var o = this.dynamicProperties[n];
                  o.uploadFunction(
                    t,
                    e,
                    i,
                    this.dynamicData,
                    this.dynamicStride,
                    o.offset
                  );
                }
                r.bindBuffer(r.ARRAY_BUFFER, this.dynamicBuffer),
                  r.bufferSubData(r.ARRAY_BUFFER, 0, this.dynamicData);
              }),
              (i.prototype.uploadStatic = function (t, e, i) {
                for (
                  var r = this.gl, n = 0;
                  n < this.staticProperties.length;
                  n++
                ) {
                  var o = this.staticProperties[n];
                  o.uploadFunction(
                    t,
                    e,
                    i,
                    this.staticData,
                    this.staticStride,
                    o.offset
                  );
                }
                r.bindBuffer(r.ARRAY_BUFFER, this.staticBuffer),
                  r.bufferSubData(r.ARRAY_BUFFER, 0, this.staticData);
              }),
              (i.prototype.bind = function () {
                var t,
                  e,
                  i = this.gl;
                for (
                  i.bindBuffer(i.ARRAY_BUFFER, this.dynamicBuffer), t = 0;
                  t < this.dynamicProperties.length;
                  t++
                )
                  (e = this.dynamicProperties[t]),
                    i.vertexAttribPointer(
                      e.attribute,
                      e.size,
                      i.FLOAT,
                      !1,
                      4 * this.dynamicStride,
                      4 * e.offset
                    );
                for (
                  i.bindBuffer(i.ARRAY_BUFFER, this.staticBuffer), t = 0;
                  t < this.staticProperties.length;
                  t++
                )
                  (e = this.staticProperties[t]),
                    i.vertexAttribPointer(
                      e.attribute,
                      e.size,
                      i.FLOAT,
                      !1,
                      4 * this.staticStride,
                      4 * e.offset
                    );
              }),
              (i.prototype.destroy = function () {});
          },
          {},
        ],
        31: [
          function (t, e) {
            function i(t) {
              r.call(this, t), (this.size = 15e3);
              var e = 6 * this.size;
              this.indices = new Uint16Array(e);
              for (var i = 0, n = 0; e > i; i += 6, n += 4)
                (this.indices[i + 0] = n + 0),
                  (this.indices[i + 1] = n + 1),
                  (this.indices[i + 2] = n + 2),
                  (this.indices[i + 3] = n + 0),
                  (this.indices[i + 4] = n + 2),
                  (this.indices[i + 5] = n + 3);
              (this.shader = null), (this.tempMatrix = new a.Matrix());
            }
            var r = t("../../renderers/webgl/utils/ObjectRenderer"),
              n = t("../../renderers/webgl/WebGLRenderer"),
              o = t("./ParticleShader"),
              s = t("./ParticleBuffer"),
              a = t("../../math");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              n.registerPlugin("particle", i),
              (i.prototype.onContextChange = function () {
                var t = this.renderer.gl;
                (this.shader = new o(this.renderer.shaderManager)),
                  (this.indexBuffer = t.createBuffer()),
                  t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this.indexBuffer),
                  t.bufferData(
                    t.ELEMENT_ARRAY_BUFFER,
                    this.indices,
                    t.STATIC_DRAW
                  ),
                  (this.properties = [
                    {
                      attribute: this.shader.attributes.aVertexPosition,
                      dynamic: !1,
                      size: 2,
                      uploadFunction: this.uploadVerticies,
                      offset: 0,
                    },
                    {
                      attribute: this.shader.attributes.aPositionCoord,
                      dynamic: !0,
                      size: 2,
                      uploadFunction: this.uploadPosition,
                      offset: 0,
                    },
                    {
                      attribute: this.shader.attributes.aRotation,
                      dynamic: !1,
                      size: 1,
                      uploadFunction: this.uploadRotation,
                      offset: 0,
                    },
                    {
                      attribute: this.shader.attributes.aTextureCoord,
                      dynamic: !1,
                      size: 2,
                      uploadFunction: this.uploadUvs,
                      offset: 0,
                    },
                    {
                      attribute: this.shader.attributes.aColor,
                      dynamic: !1,
                      size: 1,
                      uploadFunction: this.uploadAlpha,
                      offset: 0,
                    },
                  ]);
              }),
              (i.prototype.start = function () {
                var t = this.renderer.gl;
                t.activeTexture(t.TEXTURE0),
                  t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this.indexBuffer);
                var e = this.shader;
                this.renderer.shaderManager.setShader(e);
              }),
              (i.prototype.render = function (t) {
                var e = t.children,
                  i = e.length,
                  r = t._size;
                if (0 !== i) {
                  i > r && (i = r),
                    t._buffers || (t._buffers = this.generateBuffers(t));
                  var n = this.renderer.gl,
                    o = t.worldTransform.copy(this.tempMatrix);
                  o.prepend(this.renderer.currentRenderTarget.projectionMatrix),
                    n.uniformMatrix3fv(
                      this.shader.uniforms.projectionMatrix._location,
                      !1,
                      o.toArray(!0)
                    );
                  var s = t._updateStatic,
                    a = e[0]._texture.baseTexture;
                  a._glTextures[n.id]
                    ? n.bindTexture(n.TEXTURE_2D, a._glTextures[n.id])
                    : (this.renderer.updateTexture(a),
                      (this.properties[0].dynamic &&
                        this.properties[3].dynamic) ||
                        (s = !0));
                  for (var h = 0, l = 0; i > l; l += this.size) {
                    var u = i - l;
                    u > this.size && (u = this.size);
                    var c = t._buffers[h++];
                    c.uploadDynamic(e, l, u),
                      s && c.uploadStatic(e, l, u),
                      c.bind(this.shader),
                      n.drawElements(n.TRIANGLES, 6 * u, n.UNSIGNED_SHORT, 0),
                      this.renderer.drawCount++;
                  }
                  t._updateStatic = !1;
                }
              }),
              (i.prototype.generateBuffers = function (t) {
                var e,
                  i = this.renderer.gl,
                  r = [],
                  n = t._size;
                for (e = 0; e < t._properties.length; e++)
                  this.properties[e].dynamic = t._properties[e];
                for (e = 0; n > e; e += this.size)
                  r.push(new s(i, this.properties, this.size, this.shader));
                return r;
              }),
              (i.prototype.uploadVerticies = function (t, e, i, r, n, o) {
                for (var s, a, h, l, u, c, d, p, f, m = 0; i > m; m++)
                  (s = t[e + m]),
                    (a = s._texture),
                    (l = s.scale.x),
                    (u = s.scale.y),
                    a.trim
                      ? ((h = a.trim),
                        (d = h.x - s.anchor.x * h.width),
                        (c = d + a.crop.width),
                        (f = h.y - s.anchor.y * h.height),
                        (p = f + a.crop.height))
                      : ((c = a._frame.width * (1 - s.anchor.x)),
                        (d = a._frame.width * -s.anchor.x),
                        (p = a._frame.height * (1 - s.anchor.y)),
                        (f = a._frame.height * -s.anchor.y)),
                    (r[o] = d * l),
                    (r[o + 1] = f * u),
                    (r[o + n] = c * l),
                    (r[o + n + 1] = f * u),
                    (r[o + 2 * n] = c * l),
                    (r[o + 2 * n + 1] = p * u),
                    (r[o + 3 * n] = d * l),
                    (r[o + 3 * n + 1] = p * u),
                    (o += 4 * n);
              }),
              (i.prototype.uploadPosition = function (t, e, i, r, n, o) {
                for (var s = 0; i > s; s++) {
                  var a = t[e + s].position;
                  (r[o] = a.x),
                    (r[o + 1] = a.y),
                    (r[o + n] = a.x),
                    (r[o + n + 1] = a.y),
                    (r[o + 2 * n] = a.x),
                    (r[o + 2 * n + 1] = a.y),
                    (r[o + 3 * n] = a.x),
                    (r[o + 3 * n + 1] = a.y),
                    (o += 4 * n);
                }
              }),
              (i.prototype.uploadRotation = function (t, e, i, r, n, o) {
                for (var s = 0; i > s; s++) {
                  var a = t[e + s].rotation;
                  (r[o] = a),
                    (r[o + n] = a),
                    (r[o + 2 * n] = a),
                    (r[o + 3 * n] = a),
                    (o += 4 * n);
                }
              }),
              (i.prototype.uploadUvs = function (t, e, i, r, n, o) {
                for (var s = 0; i > s; s++) {
                  var a = t[e + s]._texture._uvs;
                  a
                    ? ((r[o] = a.x0),
                      (r[o + 1] = a.y0),
                      (r[o + n] = a.x1),
                      (r[o + n + 1] = a.y1),
                      (r[o + 2 * n] = a.x2),
                      (r[o + 2 * n + 1] = a.y2),
                      (r[o + 3 * n] = a.x3),
                      (r[o + 3 * n + 1] = a.y3),
                      (o += 4 * n))
                    : ((r[o] = 0),
                      (r[o + 1] = 0),
                      (r[o + n] = 0),
                      (r[o + n + 1] = 0),
                      (r[o + 2 * n] = 0),
                      (r[o + 2 * n + 1] = 0),
                      (r[o + 3 * n] = 0),
                      (r[o + 3 * n + 1] = 0),
                      (o += 4 * n));
                }
              }),
              (i.prototype.uploadAlpha = function (t, e, i, r, n, o) {
                for (var s = 0; i > s; s++) {
                  var a = t[e + s].alpha;
                  (r[o] = a),
                    (r[o + n] = a),
                    (r[o + 2 * n] = a),
                    (r[o + 3 * n] = a),
                    (o += 4 * n);
                }
              }),
              (i.prototype.destroy = function () {
                this.shader.destroy();
              });
          },
          {
            "../../math": 23,
            "../../renderers/webgl/WebGLRenderer": 39,
            "../../renderers/webgl/utils/ObjectRenderer": 53,
            "./ParticleBuffer": 30,
            "./ParticleShader": 32,
          },
        ],
        32: [
          function (t, e) {
            function i(t) {
              r.call(
                this,
                t,
                [
                  "attribute vec2 aVertexPosition;",
                  "attribute vec2 aTextureCoord;",
                  "attribute float aColor;",
                  "attribute vec2 aPositionCoord;",
                  "attribute vec2 aScale;",
                  "attribute float aRotation;",
                  "uniform mat3 projectionMatrix;",
                  "varying vec2 vTextureCoord;",
                  "varying float vColor;",
                  "void main(void){",
                  "   vec2 v = aVertexPosition;",
                  "   v.x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);",
                  "   v.y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);",
                  "   v = v + aPositionCoord;",
                  "   gl_Position = vec4((projectionMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);",
                  "   vTextureCoord = aTextureCoord;",
                  "   vColor = aColor;",
                  "}",
                ].join("\n"),
                [
                  "precision lowp float;",
                  "varying vec2 vTextureCoord;",
                  "varying float vColor;",
                  "uniform sampler2D uSampler;",
                  "void main(void){",
                  "   gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;",
                  "}",
                ].join("\n"),
                null,
                { aPositionCoord: 0, aRotation: 0 }
              );
            }
            var r = t("../../renderers/webgl/shaders/TextureShader");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i);
          },
          { "../../renderers/webgl/shaders/TextureShader": 52 },
        ],
        33: [
          function (t, e) {
            function i(t, e, i, s) {
              if ((r.sayHello(t), s))
                for (var a in o.DEFAULT_RENDER_OPTIONS)
                  "undefined" == typeof s[a] &&
                    (s[a] = o.DEFAULT_RENDER_OPTIONS[a]);
              else s = o.DEFAULT_RENDER_OPTIONS;
              (this.type = o.RENDERER_TYPE.UNKNOWN),
                (this.width = e || 800),
                (this.height = i || 600),
                (this.view = s.view || document.createElement("canvas")),
                (this.resolution = s.resolution),
                (this.transparent = s.transparent),
                (this.autoResize = s.autoResize || !1),
                (this.blendModes = null),
                (this.preserveDrawingBuffer = s.preserveDrawingBuffer),
                (this.clearBeforeRender = s.clearBeforeRender),
                (this._backgroundColor = 16777215),
                (this._backgroundColorRgb = [1, 1, 1]),
                (this._backgroundColorString = "#000000"),
                (this.backgroundColor =
                  s.backgroundColor || this._backgroundColor),
                (this._tempDisplayObjectParent = {
                  worldTransform: new n.Matrix(),
                  worldAlpha: 1,
                  children: [],
                }),
                (this._lastObjectRendered = this._tempDisplayObjectParent);
            }
            var r = t("../utils"),
              n = t("../math"),
              o = t("../const");
            (i.prototype.constructor = i),
              (e.exports = i),
              r.eventTarget.mixin(i.prototype),
              Object.defineProperties(i.prototype, {
                backgroundColor: {
                  get: function () {
                    return this._backgroundColor;
                  },
                  set: function (t) {
                    (this._backgroundColor = t),
                      (this._backgroundColorString = r.hex2string(t)),
                      r.hex2rgb(t, this._backgroundColorRgb);
                  },
                },
              }),
              (i.prototype.resize = function (t, e) {
                (this.width = t * this.resolution),
                  (this.height = e * this.resolution),
                  (this.view.width = this.width),
                  (this.view.height = this.height),
                  this.autoResize &&
                    ((this.view.style.width =
                      this.width / this.resolution + "px"),
                    (this.view.style.height =
                      this.height / this.resolution + "px"));
              }),
              (i.prototype.destroy = function (t) {
                t &&
                  this.view.parent &&
                  this.view.parent.removeChild(this.view),
                  (this.type = o.RENDERER_TYPE.UNKNOWN),
                  (this.width = 0),
                  (this.height = 0),
                  (this.view = null),
                  (this.resolution = 0),
                  (this.transparent = !1),
                  (this.autoResize = !1),
                  (this.blendModes = null),
                  (this.preserveDrawingBuffer = !1),
                  (this.clearBeforeRender = !1),
                  (this._backgroundColor = 0),
                  (this._backgroundColorRgb = null),
                  (this._backgroundColorString = null);
              });
          },
          { "../const": 13, "../math": 23, "../utils": 68 },
        ],
        34: [
          function (t, e) {
            function i(t, e, i) {
              r.call(this, "Canvas", t, e, i),
                (this.type = a.RENDERER_TYPE.CANVAS),
                (this.context = this.view.getContext("2d", {
                  alpha: this.transparent,
                })),
                (this.refresh = !0),
                (this.maskManager = new n()),
                (this.roundPixels = !1),
                (this.currentScaleMode = a.SCALE_MODES.DEFAULT),
                (this.currentBlendMode = a.BLEND_MODES.NORMAL),
                (this.smoothProperty = "imageSmoothingEnabled"),
                this.context.imageSmoothingEnabled ||
                  (this.context.webkitImageSmoothingEnabled
                    ? (this.smoothProperty = "webkitImageSmoothingEnabled")
                    : this.context.mozImageSmoothingEnabled
                    ? (this.smoothProperty = "mozImageSmoothingEnabled")
                    : this.context.oImageSmoothingEnabled
                    ? (this.smoothProperty = "oImageSmoothingEnabled")
                    : this.context.msImageSmoothingEnabled &&
                      (this.smoothProperty = "msImageSmoothingEnabled")),
                this.initPlugins(),
                this._mapBlendModes(),
                (this._tempDisplayObjectParent = {
                  worldTransform: new s.Matrix(),
                  worldAlpha: 1,
                }),
                this.resize(t, e);
            }
            var r = t("../SystemRenderer"),
              n = t("./utils/CanvasMaskManager"),
              o = t("../../utils"),
              s = t("../../math"),
              a = t("../../const");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              o.pluginTarget.mixin(i),
              (i.prototype.render = function (t) {
                var e = t.parent;
                (this._lastObjectRendered = t),
                  (t.parent = this._tempDisplayObjectParent),
                  t.updateTransform(),
                  (t.parent = e),
                  this.context.setTransform(1, 0, 0, 1, 0, 0),
                  (this.context.globalAlpha = 1),
                  (this.currentBlendMode = a.BLEND_MODES.NORMAL),
                  (this.context.globalCompositeOperation =
                    this.blendModes[a.BLEND_MODES.NORMAL]),
                  navigator.isCocoonJS &&
                    this.view.screencanvas &&
                    ((this.context.fillStyle = "black"), this.context.clear()),
                  this.clearBeforeRender &&
                    (this.transparent
                      ? this.context.clearRect(0, 0, this.width, this.height)
                      : ((this.context.fillStyle = this._backgroundColorString),
                        this.context.fillRect(0, 0, this.width, this.height))),
                  this.renderDisplayObject(t, this.context);
              }),
              (i.prototype.destroy = function (t) {
                this.destroyPlugins(),
                  r.prototype.destroy.call(this, t),
                  (this.context = null),
                  (this.refresh = !0),
                  this.maskManager.destroy(),
                  (this.maskManager = null),
                  (this.roundPixels = !1),
                  (this.currentScaleMode = 0),
                  (this.currentBlendMode = 0),
                  (this.smoothProperty = null);
              }),
              (i.prototype.renderDisplayObject = function (t, e) {
                var i = this.context;
                (this.context = e), t.renderCanvas(this), (this.context = i);
              }),
              (i.prototype._mapBlendModes = function () {
                this.blendModes ||
                  ((this.blendModes = {}),
                  o.canUseNewCanvasBlendModes()
                    ? ((this.blendModes[a.BLEND_MODES.NORMAL] = "source-over"),
                      (this.blendModes[a.BLEND_MODES.ADD] = "lighter"),
                      (this.blendModes[a.BLEND_MODES.MULTIPLY] = "multiply"),
                      (this.blendModes[a.BLEND_MODES.SCREEN] = "screen"),
                      (this.blendModes[a.BLEND_MODES.OVERLAY] = "overlay"),
                      (this.blendModes[a.BLEND_MODES.DARKEN] = "darken"),
                      (this.blendModes[a.BLEND_MODES.LIGHTEN] = "lighten"),
                      (this.blendModes[a.BLEND_MODES.COLOR_DODGE] =
                        "color-dodge"),
                      (this.blendModes[a.BLEND_MODES.COLOR_BURN] =
                        "color-burn"),
                      (this.blendModes[a.BLEND_MODES.HARD_LIGHT] =
                        "hard-light"),
                      (this.blendModes[a.BLEND_MODES.SOFT_LIGHT] =
                        "soft-light"),
                      (this.blendModes[a.BLEND_MODES.DIFFERENCE] =
                        "difference"),
                      (this.blendModes[a.BLEND_MODES.EXCLUSION] = "exclusion"),
                      (this.blendModes[a.BLEND_MODES.HUE] = "hue"),
                      (this.blendModes[a.BLEND_MODES.SATURATION] =
                        "saturation"),
                      (this.blendModes[a.BLEND_MODES.COLOR] = "color"),
                      (this.blendModes[a.BLEND_MODES.LUMINOSITY] =
                        "luminosity"))
                    : ((this.blendModes[a.BLEND_MODES.NORMAL] = "source-over"),
                      (this.blendModes[a.BLEND_MODES.ADD] = "lighter"),
                      (this.blendModes[a.BLEND_MODES.MULTIPLY] = "source-over"),
                      (this.blendModes[a.BLEND_MODES.SCREEN] = "source-over"),
                      (this.blendModes[a.BLEND_MODES.OVERLAY] = "source-over"),
                      (this.blendModes[a.BLEND_MODES.DARKEN] = "source-over"),
                      (this.blendModes[a.BLEND_MODES.LIGHTEN] = "source-over"),
                      (this.blendModes[a.BLEND_MODES.COLOR_DODGE] =
                        "source-over"),
                      (this.blendModes[a.BLEND_MODES.COLOR_BURN] =
                        "source-over"),
                      (this.blendModes[a.BLEND_MODES.HARD_LIGHT] =
                        "source-over"),
                      (this.blendModes[a.BLEND_MODES.SOFT_LIGHT] =
                        "source-over"),
                      (this.blendModes[a.BLEND_MODES.DIFFERENCE] =
                        "source-over"),
                      (this.blendModes[a.BLEND_MODES.EXCLUSION] =
                        "source-over"),
                      (this.blendModes[a.BLEND_MODES.HUE] = "source-over"),
                      (this.blendModes[a.BLEND_MODES.SATURATION] =
                        "source-over"),
                      (this.blendModes[a.BLEND_MODES.COLOR] = "source-over"),
                      (this.blendModes[a.BLEND_MODES.LUMINOSITY] =
                        "source-over")));
              });
          },
          {
            "../../const": 13,
            "../../math": 23,
            "../../utils": 68,
            "../SystemRenderer": 33,
            "./utils/CanvasMaskManager": 37,
          },
        ],
        35: [
          function (t, e) {
            function i(t, e) {
              (this.canvas = document.createElement("canvas")),
                (this.context = this.canvas.getContext("2d")),
                (this.canvas.width = t),
                (this.canvas.height = e);
            }
            (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                width: {
                  get: function () {
                    return this.canvas.width;
                  },
                  set: function (t) {
                    this.canvas.width = t;
                  },
                },
                height: {
                  get: function () {
                    return this.canvas.height;
                  },
                  set: function (t) {
                    this.canvas.height = t;
                  },
                },
              }),
              (i.prototype.clear = function () {
                this.context.setTransform(1, 0, 0, 1, 0, 0),
                  this.context.clearRect(
                    0,
                    0,
                    this.canvas.width,
                    this.canvas.height
                  );
              }),
              (i.prototype.resize = function (t, e) {
                (this.canvas.width = t), (this.canvas.height = e);
              }),
              (i.prototype.destroy = function () {
                (this.context = null), (this.canvas = null);
              });
          },
          {},
        ],
        36: [
          function (t, e) {
            var i = t("../../../const"),
              r = (e.exports = {});
            (r.renderGraphics = function (t, e) {
              var r = t.worldAlpha;
              t.dirty && (this.updateGraphicsTint(t), (t.dirty = !1));
              for (var n = 0; n < t.graphicsData.length; n++) {
                var o = t.graphicsData[n],
                  s = o.shape,
                  a = o._fillTint,
                  h = o._lineTint;
                if (((e.lineWidth = o.lineWidth), o.type === i.SHAPES.POLY)) {
                  e.beginPath();
                  var l = s.points;
                  e.moveTo(l[0], l[1]);
                  for (var u = 1; u < l.length / 2; u++)
                    e.lineTo(l[2 * u], l[2 * u + 1]);
                  s.closed && e.lineTo(l[0], l[1]),
                    l[0] === l[l.length - 2] &&
                      l[1] === l[l.length - 1] &&
                      e.closePath(),
                    o.fill &&
                      ((e.globalAlpha = o.fillAlpha * r),
                      (e.fillStyle =
                        "#" + ("00000" + (0 | a).toString(16)).substr(-6)),
                      e.fill()),
                    o.lineWidth &&
                      ((e.globalAlpha = o.lineAlpha * r),
                      (e.strokeStyle =
                        "#" + ("00000" + (0 | h).toString(16)).substr(-6)),
                      e.stroke());
                } else if (o.type === i.SHAPES.RECT)
                  (o.fillColor || 0 === o.fillColor) &&
                    ((e.globalAlpha = o.fillAlpha * r),
                    (e.fillStyle =
                      "#" + ("00000" + (0 | a).toString(16)).substr(-6)),
                    e.fillRect(s.x, s.y, s.width, s.height)),
                    o.lineWidth &&
                      ((e.globalAlpha = o.lineAlpha * r),
                      (e.strokeStyle =
                        "#" + ("00000" + (0 | h).toString(16)).substr(-6)),
                      e.strokeRect(s.x, s.y, s.width, s.height));
                else if (o.type === i.SHAPES.CIRC)
                  e.beginPath(),
                    e.arc(s.x, s.y, s.radius, 0, 2 * Math.PI),
                    e.closePath(),
                    o.fill &&
                      ((e.globalAlpha = o.fillAlpha * r),
                      (e.fillStyle =
                        "#" + ("00000" + (0 | a).toString(16)).substr(-6)),
                      e.fill()),
                    o.lineWidth &&
                      ((e.globalAlpha = o.lineAlpha * r),
                      (e.strokeStyle =
                        "#" + ("00000" + (0 | h).toString(16)).substr(-6)),
                      e.stroke());
                else if (o.type === i.SHAPES.ELIP) {
                  var c = 2 * s.width,
                    d = 2 * s.height,
                    p = s.x - c / 2,
                    f = s.y - d / 2;
                  e.beginPath();
                  var m = 0.5522848,
                    v = (c / 2) * m,
                    g = (d / 2) * m,
                    y = p + c,
                    x = f + d,
                    _ = p + c / 2,
                    b = f + d / 2;
                  e.moveTo(p, b),
                    e.bezierCurveTo(p, b - g, _ - v, f, _, f),
                    e.bezierCurveTo(_ + v, f, y, b - g, y, b),
                    e.bezierCurveTo(y, b + g, _ + v, x, _, x),
                    e.bezierCurveTo(_ - v, x, p, b + g, p, b),
                    e.closePath(),
                    o.fill &&
                      ((e.globalAlpha = o.fillAlpha * r),
                      (e.fillStyle =
                        "#" + ("00000" + (0 | a).toString(16)).substr(-6)),
                      e.fill()),
                    o.lineWidth &&
                      ((e.globalAlpha = o.lineAlpha * r),
                      (e.strokeStyle =
                        "#" + ("00000" + (0 | h).toString(16)).substr(-6)),
                      e.stroke());
                } else if (o.type === i.SHAPES.RREC) {
                  var w = s.x,
                    T = s.y,
                    S = s.width,
                    E = s.height,
                    A = s.radius,
                    C = (Math.min(S, E) / 2) | 0;
                  (A = A > C ? C : A),
                    e.beginPath(),
                    e.moveTo(w, T + A),
                    e.lineTo(w, T + E - A),
                    e.quadraticCurveTo(w, T + E, w + A, T + E),
                    e.lineTo(w + S - A, T + E),
                    e.quadraticCurveTo(w + S, T + E, w + S, T + E - A),
                    e.lineTo(w + S, T + A),
                    e.quadraticCurveTo(w + S, T, w + S - A, T),
                    e.lineTo(w + A, T),
                    e.quadraticCurveTo(w, T, w, T + A),
                    e.closePath(),
                    (o.fillColor || 0 === o.fillColor) &&
                      ((e.globalAlpha = o.fillAlpha * r),
                      (e.fillStyle =
                        "#" + ("00000" + (0 | a).toString(16)).substr(-6)),
                      e.fill()),
                    o.lineWidth &&
                      ((e.globalAlpha = o.lineAlpha * r),
                      (e.strokeStyle =
                        "#" + ("00000" + (0 | h).toString(16)).substr(-6)),
                      e.stroke());
                }
              }
            }),
              (r.renderGraphicsMask = function (t, e) {
                var r = t.graphicsData.length;
                if (0 !== r) {
                  e.beginPath();
                  for (var n = 0; r > n; n++) {
                    var o = t.graphicsData[n],
                      s = o.shape;
                    if (o.type === i.SHAPES.POLY) {
                      var a = s.points;
                      e.moveTo(a[0], a[1]);
                      for (var h = 1; h < a.length / 2; h++)
                        e.lineTo(a[2 * h], a[2 * h + 1]);
                      a[0] === a[a.length - 2] &&
                        a[1] === a[a.length - 1] &&
                        e.closePath();
                    } else if (o.type === i.SHAPES.RECT)
                      e.rect(s.x, s.y, s.width, s.height), e.closePath();
                    else if (o.type === i.SHAPES.CIRC)
                      e.arc(s.x, s.y, s.radius, 0, 2 * Math.PI), e.closePath();
                    else if (o.type === i.SHAPES.ELIP) {
                      var l = 2 * s.width,
                        u = 2 * s.height,
                        c = s.x - l / 2,
                        d = s.y - u / 2,
                        p = 0.5522848,
                        f = (l / 2) * p,
                        m = (u / 2) * p,
                        v = c + l,
                        g = d + u,
                        y = c + l / 2,
                        x = d + u / 2;
                      e.moveTo(c, x),
                        e.bezierCurveTo(c, x - m, y - f, d, y, d),
                        e.bezierCurveTo(y + f, d, v, x - m, v, x),
                        e.bezierCurveTo(v, x + m, y + f, g, y, g),
                        e.bezierCurveTo(y - f, g, c, x + m, c, x),
                        e.closePath();
                    } else if (o.type === i.SHAPES.RREC) {
                      var _ = s.x,
                        b = s.y,
                        w = s.width,
                        T = s.height,
                        S = s.radius,
                        E = (Math.min(w, T) / 2) | 0;
                      (S = S > E ? E : S),
                        e.moveTo(_, b + S),
                        e.lineTo(_, b + T - S),
                        e.quadraticCurveTo(_, b + T, _ + S, b + T),
                        e.lineTo(_ + w - S, b + T),
                        e.quadraticCurveTo(_ + w, b + T, _ + w, b + T - S),
                        e.lineTo(_ + w, b + S),
                        e.quadraticCurveTo(_ + w, b, _ + w - S, b),
                        e.lineTo(_ + S, b),
                        e.quadraticCurveTo(_, b, _, b + S),
                        e.closePath();
                    }
                  }
                }
              }),
              (r.updateGraphicsTint = function (t) {
                if (16777215 !== t.tint)
                  for (
                    var e = ((t.tint >> 16) & 255) / 255,
                      i = ((t.tint >> 8) & 255) / 255,
                      r = (255 & t.tint) / 255,
                      n = 0;
                    n < t.graphicsData.length;
                    n++
                  ) {
                    var o = t.graphicsData[n],
                      s = 0 | o.fillColor,
                      a = 0 | o.lineColor;
                    (o._fillTint =
                      (((((s >> 16) & 255) / 255) * e * 255) << 16) +
                      (((((s >> 8) & 255) / 255) * i * 255) << 8) +
                      ((255 & s) / 255) * r * 255),
                      (o._lineTint =
                        (((((a >> 16) & 255) / 255) * e * 255) << 16) +
                        (((((a >> 8) & 255) / 255) * i * 255) << 8) +
                        ((255 & a) / 255) * r * 255);
                  }
              });
          },
          { "../../../const": 13 },
        ],
        37: [
          function (t, e) {
            function i() {}
            var r = t("./CanvasGraphics");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.pushMask = function (t, e) {
                e.context.save();
                var i = t.alpha,
                  n = t.worldTransform,
                  o = e.resolution;
                e.context.setTransform(
                  n.a * o,
                  n.b * o,
                  n.c * o,
                  n.d * o,
                  n.tx * o,
                  n.ty * o
                ),
                  t.texture ||
                    (r.renderGraphicsMask(t, e.context), e.context.clip()),
                  (t.worldAlpha = i);
              }),
              (i.prototype.popMask = function (t) {
                t.context.restore();
              });
          },
          { "./CanvasGraphics": 36 },
        ],
        38: [
          function (t, e) {
            var i = t("../../../utils"),
              r = (e.exports = {});
            (r.getTintedTexture = function (t, e) {
              var i = t.texture;
              e = r.roundColor(e);
              var n = "#" + ("00000" + (0 | e).toString(16)).substr(-6);
              if (((i.tintCache = i.tintCache || {}), i.tintCache[n]))
                return i.tintCache[n];
              var o = r.canvas || document.createElement("canvas");
              if ((r.tintMethod(i, e, o), r.convertTintToImage)) {
                var s = new Image();
                (s.src = o.toDataURL()), (i.tintCache[n] = s);
              } else (i.tintCache[n] = o), (r.canvas = null);
              return o;
            }),
              (r.tintWithMultiply = function (t, e, i) {
                var r = i.getContext("2d"),
                  n = t.crop;
                (i.width = n.width),
                  (i.height = n.height),
                  (r.fillStyle =
                    "#" + ("00000" + (0 | e).toString(16)).substr(-6)),
                  r.fillRect(0, 0, n.width, n.height),
                  (r.globalCompositeOperation = "multiply"),
                  r.drawImage(
                    t.baseTexture.source,
                    n.x,
                    n.y,
                    n.width,
                    n.height,
                    0,
                    0,
                    n.width,
                    n.height
                  ),
                  (r.globalCompositeOperation = "destination-atop"),
                  r.drawImage(
                    t.baseTexture.source,
                    n.x,
                    n.y,
                    n.width,
                    n.height,
                    0,
                    0,
                    n.width,
                    n.height
                  );
              }),
              (r.tintWithOverlay = function (t, e, i) {
                var r = i.getContext("2d"),
                  n = t.crop;
                (i.width = n.width),
                  (i.height = n.height),
                  (r.globalCompositeOperation = "copy"),
                  (r.fillStyle =
                    "#" + ("00000" + (0 | e).toString(16)).substr(-6)),
                  r.fillRect(0, 0, n.width, n.height),
                  (r.globalCompositeOperation = "destination-atop"),
                  r.drawImage(
                    t.baseTexture.source,
                    n.x,
                    n.y,
                    n.width,
                    n.height,
                    0,
                    0,
                    n.width,
                    n.height
                  );
              }),
              (r.tintWithPerPixel = function (t, e, r) {
                var n = r.getContext("2d"),
                  o = t.crop;
                (r.width = o.width),
                  (r.height = o.height),
                  (n.globalCompositeOperation = "copy"),
                  n.drawImage(
                    t.baseTexture.source,
                    o.x,
                    o.y,
                    o.width,
                    o.height,
                    0,
                    0,
                    o.width,
                    o.height
                  );
                for (
                  var s = i.hex2rgb(e),
                    a = s[0],
                    h = s[1],
                    l = s[2],
                    u = n.getImageData(0, 0, o.width, o.height),
                    c = u.data,
                    d = 0;
                  d < c.length;
                  d += 4
                )
                  (c[d + 0] *= a), (c[d + 1] *= h), (c[d + 2] *= l);
                n.putImageData(u, 0, 0);
              }),
              (r.roundColor = function (t) {
                var e = r.cacheStepsPerColorChannel,
                  n = i.hex2rgb(t);
                return (
                  (n[0] = Math.min(255, (n[0] / e) * e)),
                  (n[1] = Math.min(255, (n[1] / e) * e)),
                  (n[2] = Math.min(255, (n[2] / e) * e)),
                  i.rgb2hex(n)
                );
              }),
              (r.cacheStepsPerColorChannel = 8),
              (r.convertTintToImage = !1),
              (r.canUseMultiply = i.canUseNewCanvasBlendModes()),
              (r.tintMethod = r.canUseMultiply
                ? r.tintWithMultiply
                : r.tintWithPerPixel);
          },
          { "../../../utils": 68 },
        ],
        39: [
          function (t, e) {
            function i(t, e, i) {
              (i = i || {}),
                r.call(this, "WebGL", t, e, i),
                (this.type = p.RENDERER_TYPE.WEBGL),
                (this.handleContextLost = this.handleContextLost.bind(this)),
                (this.handleContextRestored =
                  this.handleContextRestored.bind(this)),
                (this._updateTextureBound = function (t) {
                  this.updateTexture(t.target);
                }.bind(this)),
                (this._destroyTextureBound = function (t) {
                  this.destroyTexture(t.target);
                }.bind(this)),
                this.view.addEventListener(
                  "webglcontextlost",
                  this.handleContextLost,
                  !1
                ),
                this.view.addEventListener(
                  "webglcontextrestored",
                  this.handleContextRestored,
                  !1
                ),
                (this._useFXAA = !1),
                (this._FXAAFilter = null),
                (this._contextOptions = {
                  alpha: this.transparent,
                  antialias: i.antialias,
                  premultipliedAlpha:
                    this.transparent && "notMultiplied" !== this.transparent,
                  stencil: !0,
                  preserveDrawingBuffer: i.preserveDrawingBuffer,
                }),
                (this.drawCount = 0),
                (this.shaderManager = new n(this)),
                (this.maskManager = new o(this)),
                (this.stencilManager = new s(this)),
                (this.filterManager = new a(this)),
                (this.blendModeManager = new h(this)),
                (this.currentRenderTarget = this.renderTarget),
                (this.currentRenderer = new u(this)),
                this.initPlugins(),
                this._initContext(),
                this._mapBlendModes(),
                (this._renderTargetStack = []);
            }
            var r = t("../SystemRenderer"),
              n = t("./managers/ShaderManager"),
              o = t("./managers/MaskManager"),
              s = t("./managers/StencilManager"),
              a = t("./managers/FilterManager"),
              h = t("./managers/BlendModeManager"),
              l = t("./utils/RenderTarget"),
              u = t("./utils/ObjectRenderer"),
              c = t("./filters/FXAAFilter"),
              d = t("../../utils"),
              p = t("../../const");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              d.pluginTarget.mixin(i),
              (i.glContextId = 0),
              (i.prototype._initContext = function () {
                var t =
                  this.view.getContext("webgl", this._contextOptions) ||
                  this.view.getContext(
                    "experimental-webgl",
                    this._contextOptions
                  );
                if (((this.gl = t), !t))
                  throw new Error(
                    "This browser does not support webGL. Try using the canvas renderer"
                  );
                (this.glContextId = i.glContextId++),
                  (t.id = this.glContextId),
                  (t.renderer = this),
                  t.disable(t.DEPTH_TEST),
                  t.disable(t.CULL_FACE),
                  t.enable(t.BLEND),
                  (this.renderTarget = new l(
                    this.gl,
                    this.width,
                    this.height,
                    null,
                    this.resolution,
                    !0
                  )),
                  this.emit("context", t),
                  this.resize(this.width, this.height),
                  (this._useFXAA =
                    this._contextOptions.antialias &&
                    !t.getContextAttributes().antialias),
                  this._useFXAA && (this._FXAAFilter = [new c()]);
              }),
              (i.prototype.render = function (t) {
                if (!this.gl.isContextLost()) {
                  (this._lastObjectRendered = t),
                    this._useFXAA &&
                      ((this._FXAAFilter[0].uniforms.resolution.value.x =
                        this.width),
                      (this._FXAAFilter[0].uniforms.resolution.value.y =
                        this.height),
                      (t.filterArea = this.renderTarget.size),
                      (t.filters = this._FXAAFilter));
                  var e = t.parent;
                  (t.parent = this._tempDisplayObjectParent),
                    t.updateTransform(),
                    (t.parent = e);
                  var i = this.gl;
                  i.bindFramebuffer(i.FRAMEBUFFER, null),
                    this.clearBeforeRender &&
                      (this.transparent
                        ? i.clearColor(0, 0, 0, 0)
                        : i.clearColor(
                            this._backgroundColorRgb[0],
                            this._backgroundColorRgb[1],
                            this._backgroundColorRgb[2],
                            1
                          ),
                      i.clear(i.COLOR_BUFFER_BIT)),
                    this.renderDisplayObject(t, this.renderTarget);
                }
              }),
              (i.prototype.renderDisplayObject = function (t, e) {
                this.setRenderTarget(e),
                  this.filterManager.setFilterStack(e.filterStack),
                  t.renderWebGL(this),
                  this.currentRenderer.flush();
              }),
              (i.prototype.setObjectRenderer = function (t) {
                this.currentRenderer !== t &&
                  (this.currentRenderer.stop(),
                  (this.currentRenderer = t),
                  this.currentRenderer.start());
              }),
              (i.prototype.setRenderTarget = function (t) {
                (this.currentRenderTarget = t),
                  this.currentRenderTarget.activate(),
                  this.stencilManager.setMaskStack(t.stencilMaskStack);
              }),
              (i.prototype.resize = function (t, e) {
                r.prototype.resize.call(this, t, e),
                  this.filterManager.resize(t, e),
                  this.renderTarget.resize(t, e);
              }),
              (i.prototype.updateTexture = function (t) {
                if (((t = t.baseTexture || t), t.hasLoaded)) {
                  var e = this.gl;
                  return (
                    t._glTextures[e.id] ||
                      ((t._glTextures[e.id] = e.createTexture()),
                      t.on("update", this._updateTextureBound),
                      t.on("dispose", this._destroyTextureBound)),
                    e.bindTexture(e.TEXTURE_2D, t._glTextures[e.id]),
                    e.pixelStorei(
                      e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,
                      t.premultipliedAlpha
                    ),
                    e.texImage2D(
                      e.TEXTURE_2D,
                      0,
                      e.RGBA,
                      e.RGBA,
                      e.UNSIGNED_BYTE,
                      t.source
                    ),
                    e.texParameteri(
                      e.TEXTURE_2D,
                      e.TEXTURE_MAG_FILTER,
                      t.scaleMode === p.SCALE_MODES.LINEAR
                        ? e.LINEAR
                        : e.NEAREST
                    ),
                    t.mipmap && t.isPowerOfTwo
                      ? (e.texParameteri(
                          e.TEXTURE_2D,
                          e.TEXTURE_MIN_FILTER,
                          t.scaleMode === p.SCALE_MODES.LINEAR
                            ? e.LINEAR_MIPMAP_LINEAR
                            : e.NEAREST_MIPMAP_NEAREST
                        ),
                        e.generateMipmap(e.TEXTURE_2D))
                      : e.texParameteri(
                          e.TEXTURE_2D,
                          e.TEXTURE_MIN_FILTER,
                          t.scaleMode === p.SCALE_MODES.LINEAR
                            ? e.LINEAR
                            : e.NEAREST
                        ),
                    t.isPowerOfTwo
                      ? (e.texParameteri(
                          e.TEXTURE_2D,
                          e.TEXTURE_WRAP_S,
                          e.REPEAT
                        ),
                        e.texParameteri(
                          e.TEXTURE_2D,
                          e.TEXTURE_WRAP_T,
                          e.REPEAT
                        ))
                      : (e.texParameteri(
                          e.TEXTURE_2D,
                          e.TEXTURE_WRAP_S,
                          e.CLAMP_TO_EDGE
                        ),
                        e.texParameteri(
                          e.TEXTURE_2D,
                          e.TEXTURE_WRAP_T,
                          e.CLAMP_TO_EDGE
                        )),
                    t._glTextures[e.id]
                  );
                }
              }),
              (i.prototype.destroyTexture = function (t) {
                (t = t.baseTexture || t),
                  t.hasLoaded &&
                    t._glTextures[this.gl.id] &&
                    this.gl.deleteTexture(t._glTextures[this.gl.id]);
              }),
              (i.prototype.handleContextLost = function (t) {
                t.preventDefault();
              }),
              (i.prototype.handleContextRestored = function () {
                this._initContext();
                for (var t in d.BaseTextureCache)
                  d.BaseTextureCache[t]._glTextures.length = 0;
              }),
              (i.prototype.destroy = function (t) {
                this.destroyPlugins(),
                  this.view.removeEventListener(
                    "webglcontextlost",
                    this.handleContextLost
                  ),
                  this.view.removeEventListener(
                    "webglcontextrestored",
                    this.handleContextRestored
                  ),
                  r.prototype.destroy.call(this, t),
                  (this.uuid = 0),
                  this.shaderManager.destroy(),
                  this.maskManager.destroy(),
                  this.stencilManager.destroy(),
                  this.filterManager.destroy(),
                  (this.shaderManager = null),
                  (this.maskManager = null),
                  (this.filterManager = null),
                  (this.blendModeManager = null),
                  (this.handleContextLost = null),
                  (this.handleContextRestored = null),
                  (this._contextOptions = null),
                  (this.drawCount = 0),
                  (this.gl = null);
              }),
              (i.prototype._mapBlendModes = function () {
                var t = this.gl;
                this.blendModes ||
                  ((this.blendModes = {}),
                  (this.blendModes[p.BLEND_MODES.NORMAL] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.ADD] = [
                    t.SRC_ALPHA,
                    t.DST_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.MULTIPLY] = [
                    t.DST_COLOR,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.SCREEN] = [
                    t.SRC_ALPHA,
                    t.ONE,
                  ]),
                  (this.blendModes[p.BLEND_MODES.OVERLAY] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.DARKEN] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.LIGHTEN] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.COLOR_DODGE] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.COLOR_BURN] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.HARD_LIGHT] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.SOFT_LIGHT] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.DIFFERENCE] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.EXCLUSION] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.HUE] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.SATURATION] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.COLOR] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]),
                  (this.blendModes[p.BLEND_MODES.LUMINOSITY] = [
                    t.ONE,
                    t.ONE_MINUS_SRC_ALPHA,
                  ]));
              });
          },
          {
            "../../const": 13,
            "../../utils": 68,
            "../SystemRenderer": 33,
            "./filters/FXAAFilter": 41,
            "./managers/BlendModeManager": 43,
            "./managers/FilterManager": 44,
            "./managers/MaskManager": 45,
            "./managers/ShaderManager": 46,
            "./managers/StencilManager": 47,
            "./utils/ObjectRenderer": 53,
            "./utils/RenderTarget": 55,
          },
        ],
        40: [
          function (t, e) {
            function i(t, e, i) {
              (this.passes = [this]),
                (this.shaders = []),
                (this.padding = 0),
                (this.uniforms = i || {}),
                (this.vertexSrc = t),
                (this.fragmentSrc = e);
            }
            var r = t("../shaders/TextureShader");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.getShader = function (t) {
                var e = t.gl,
                  i = this.shaders[e.id];
                return (
                  i ||
                    ((i = new r(
                      t.shaderManager,
                      this.vertexSrc,
                      this.fragmentSrc,
                      this.uniforms,
                      this.attributes
                    )),
                    (this.shaders[e.id] = i)),
                  i
                );
              }),
              (i.prototype.applyFilter = function (t, e, i, r) {
                var n = this.getShader(t);
                t.filterManager.applyFilter(n, e, i, r);
              }),
              (i.prototype.syncUniform = function (t) {
                for (var e = 0, i = this.shaders.length; i > e; ++e)
                  this.shaders[e].syncUniform(t);
              });
          },
          { "../shaders/TextureShader": 52 },
        ],
        41: [
          function (t, e) {
            function i() {
              r.call(
                this,
                "precision mediump float;\n\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nuniform mat3 projectionMatrix;\nuniform vec2 resolution;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nvarying vec2 vResolution;\n\n//texcoords computed in vertex step\n//to avoid dependent texture reads\nvarying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\n\nvoid texcoords(vec2 fragCoord, vec2 resolution,\n            out vec2 v_rgbNW, out vec2 v_rgbNE,\n            out vec2 v_rgbSW, out vec2 v_rgbSE,\n            out vec2 v_rgbM) {\n    vec2 inverseVP = 1.0 / resolution.xy;\n    v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;\n    v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;\n    v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;\n    v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;\n    v_rgbM = vec2(fragCoord * inverseVP);\n}\n\nvoid main(void){\n   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n   vTextureCoord = aTextureCoord;\n   vColor = vec4(aColor.rgb * aColor.a, aColor.a);\n   vResolution = resolution;\n\n   //compute the texture coords and send them to varyings\n   texcoords(aTextureCoord * resolution, resolution, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n}\n",
                'precision lowp float;\n\n\n/**\nBasic FXAA implementation based on the code on geeks3d.com with the\nmodification that the texture2DLod stuff was removed since it\'s\nunsupported by WebGL.\n\n--\n\nFrom:\nhttps://github.com/mitsuhiko/webgl-meincraft\n\nCopyright (c) 2011 by Armin Ronacher.\n\nSome rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * The names of the contributors may not be used to endorse or\n      promote products derived from this software without specific\n      prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n#ifndef FXAA_REDUCE_MIN\n    #define FXAA_REDUCE_MIN   (1.0/ 128.0)\n#endif\n#ifndef FXAA_REDUCE_MUL\n    #define FXAA_REDUCE_MUL   (1.0 / 8.0)\n#endif\n#ifndef FXAA_SPAN_MAX\n    #define FXAA_SPAN_MAX     8.0\n#endif\n\n//optimized version for mobile, where dependent\n//texture reads can be a bottleneck\nvec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 resolution,\n            vec2 v_rgbNW, vec2 v_rgbNE,\n            vec2 v_rgbSW, vec2 v_rgbSE,\n            vec2 v_rgbM) {\n    vec4 color;\n    mediump vec2 inverseVP = vec2(1.0 / resolution.x, 1.0 / resolution.y);\n    vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;\n    vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;\n    vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;\n    vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;\n    vec4 texColor = texture2D(tex, v_rgbM);\n    vec3 rgbM  = texColor.xyz;\n    vec3 luma = vec3(0.299, 0.587, 0.114);\n    float lumaNW = dot(rgbNW, luma);\n    float lumaNE = dot(rgbNE, luma);\n    float lumaSW = dot(rgbSW, luma);\n    float lumaSE = dot(rgbSE, luma);\n    float lumaM  = dot(rgbM,  luma);\n    float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\n    float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\n\n    mediump vec2 dir;\n    dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n    dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n\n    float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *\n                          (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\n\n    float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\n    dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),\n              max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\n              dir * rcpDirMin)) * inverseVP;\n\n    vec3 rgbA = 0.5 * (\n        texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +\n        texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\n    vec3 rgbB = rgbA * 0.5 + 0.25 * (\n        texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +\n        texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);\n\n    float lumaB = dot(rgbB, luma);\n    if ((lumaB < lumaMin) || (lumaB > lumaMax))\n        color = vec4(rgbA, texColor.a);\n    else\n        color = vec4(rgbB, texColor.a);\n    return color;\n}\n\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying vec2 vResolution;\n\n//texcoords computed in vertex step\n//to avoid dependent texture reads\nvarying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nuniform sampler2D uSampler;\n\n\nvoid main(void){\n\n    gl_FragColor = fxaa(uSampler, vTextureCoord * vResolution, vResolution, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n\n}\n',
                { resolution: { type: "v2", value: { x: 1, y: 1 } } }
              );
            }
            var r = t("./AbstractFilter");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.applyFilter = function (t, e, i) {
                var r = t.filterManager,
                  n = this.getShader(t);
                r.applyFilter(n, e, i);
              });
          },
          { "./AbstractFilter": 40 },
        ],
        42: [
          function (t, e) {
            function i(t) {
              var e = new n.Matrix();
              r.call(
                this,
                [
                  "attribute vec2 aVertexPosition;",
                  "attribute vec2 aTextureCoord;",
                  "attribute vec4 aColor;",
                  "uniform mat3 projectionMatrix;",
                  "uniform mat3 otherMatrix;",
                  "varying vec2 vMaskCoord;",
                  "varying vec2 vTextureCoord;",
                  "varying vec4 vColor;",
                  "void main(void)",
                  "{",
                  "   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);",
                  "   vTextureCoord = aTextureCoord;",
                  "   vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0)  ).xy;",
                  "   vColor = vec4(aColor.rgb * aColor.a, aColor.a);",
                  "}",
                ].join("\n"),
                [
                  "precision lowp float;",
                  "varying vec2 vMaskCoord;",
                  "varying vec2 vTextureCoord;",
                  "varying vec4 vColor;",
                  "uniform sampler2D uSampler;",
                  "uniform sampler2D mask;",
                  "void main(void)",
                  "{",
                  "   vec4 original =  texture2D(uSampler, vTextureCoord);",
                  "   vec4 masky =  texture2D(mask, vMaskCoord);",
                  "   original *= (masky.r * masky.a);",
                  "   gl_FragColor =  original;",
                  "}",
                ].join("\n"),
                {
                  mask: { type: "sampler2D", value: t.texture },
                  otherMatrix: { type: "mat3", value: e.toArray(!0) },
                }
              ),
                (this.maskSprite = t),
                (this.maskMatrix = e);
            }
            var r = t("./AbstractFilter"),
              n = t("../../../math");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.applyFilter = function (t, e, i) {
                var r = t.filterManager;
                r.calculateMappedMatrix(
                  e.frame,
                  this.maskSprite,
                  this.maskMatrix
                ),
                  (this.uniforms.otherMatrix.value = this.maskMatrix.toArray(
                    !0
                  ));
                var n = this.getShader(t);
                r.applyFilter(n, e, i);
              }),
              Object.defineProperties(i.prototype, {
                map: {
                  get: function () {
                    return this.uniforms.mask.value;
                  },
                  set: function (t) {
                    this.uniforms.mask.value = t;
                  },
                },
                offset: {
                  get: function () {
                    return this.uniforms.offset.value;
                  },
                  set: function (t) {
                    this.uniforms.offset.value = t;
                  },
                },
              });
          },
          { "../../../math": 23, "./AbstractFilter": 40 },
        ],
        43: [
          function (t, e) {
            function i(t) {
              r.call(this, t), (this.currentBlendMode = 99999);
            }
            var r = t("./WebGLManager");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.setBlendMode = function (t) {
                if (this.currentBlendMode === t) return !1;
                this.currentBlendMode = t;
                var e = this.renderer.blendModes[this.currentBlendMode];
                return this.renderer.gl.blendFunc(e[0], e[1]), !0;
              });
          },
          { "./WebGLManager": 48 },
        ],
        44: [
          function (t, e) {
            function i(t) {
              r.call(this, t),
                (this.filterStack = []),
                this.filterStack.push({
                  renderTarget: t.currentRenderTarget,
                  filter: [],
                  bounds: null,
                }),
                (this.texturePool = []),
                (this.textureSize = new s.Rectangle(0, 0, t.width, t.height)),
                (this.currentFrame = null);
            }
            var r = t("./WebGLManager"),
              n = t("../utils/RenderTarget"),
              o = t("../utils/Quad"),
              s = t("../../../math");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.onContextChange = function () {
                this.texturePool.length = 0;
                var t = this.renderer.gl;
                this.quad = new o(t);
              }),
              (i.prototype.setFilterStack = function (t) {
                this.filterStack = t;
              }),
              (i.prototype.pushFilter = function (t, e) {
                var i = t.filterArea || t.getBounds();
                (i.x = 0 | i.x),
                  (i.y = 0 | i.y),
                  (i.width = 0 | i.width),
                  (i.height = 0 | i.height),
                  this.capFilterArea(i),
                  (this.currentFrame = i);
                var r = this.getRenderTarget();
                this.renderer.setRenderTarget(r),
                  r.clear(),
                  this.filterStack.push({ renderTarget: r, filter: e });
              }),
              (i.prototype.popFilter = function () {
                var t = this.filterStack.pop(),
                  e = this.filterStack[this.filterStack.length - 1],
                  i = t.renderTarget,
                  r = e.renderTarget,
                  n = this.renderer.gl;
                (this.currentFrame = i.frame),
                  this.quad.map(this.textureSize, i.frame),
                  n.bindBuffer(n.ARRAY_BUFFER, this.quad.vertexBuffer),
                  n.bindBuffer(n.ELEMENT_ARRAY_BUFFER, this.quad.indexBuffer);
                var o = t.filter;
                if (1 === o.length)
                  o[0].uniforms.dimensions &&
                    ((o[0].uniforms.dimensions.value[0] = this.renderer.width),
                    (o[0].uniforms.dimensions.value[1] = this.renderer.height),
                    (o[0].uniforms.dimensions.value[2] = this.quad.vertices[0]),
                    (o[0].uniforms.dimensions.value[3] =
                      this.quad.vertices[5])),
                    o[0].applyFilter(this.renderer, i, r),
                    this.returnRenderTarget(i);
                else {
                  for (
                    var s = i, a = this.getRenderTarget(!0), h = 0;
                    h < o.length - 1;
                    h++
                  ) {
                    var l = o[h];
                    l.uniforms.dimensions &&
                      ((l.uniforms.dimensions.value[0] = this.renderer.width),
                      (l.uniforms.dimensions.value[1] = this.renderer.height),
                      (l.uniforms.dimensions.value[2] = this.quad.vertices[0]),
                      (l.uniforms.dimensions.value[3] = this.quad.vertices[5])),
                      l.applyFilter(this.renderer, s, a);
                    var u = s;
                    (s = a), (a = u);
                  }
                  o[o.length - 1].applyFilter(this.renderer, s, r),
                    this.returnRenderTarget(s),
                    this.returnRenderTarget(a);
                }
                return t.filter;
              }),
              (i.prototype.getRenderTarget = function (t) {
                var e =
                  this.texturePool.pop() ||
                  new n(
                    this.renderer.gl,
                    this.textureSize.width,
                    this.textureSize.height,
                    null,
                    this.renderer.resolution
                  );
                return (e.frame = this.currentFrame), t && e.clear(), e;
              }),
              (i.prototype.returnRenderTarget = function (t) {
                this.texturePool.push(t);
              }),
              (i.prototype.applyFilter = function (t, e, i, r) {
                var n = this.renderer.gl;
                this.renderer.setRenderTarget(i),
                  r && i.clear(),
                  this.renderer.shaderManager.setShader(t),
                  (t.uniforms.projectionMatrix.value =
                    this.renderer.currentRenderTarget.projectionMatrix.toArray(
                      !0
                    )),
                  t.syncUniforms(),
                  n.vertexAttribPointer(
                    t.attributes.aVertexPosition,
                    2,
                    n.FLOAT,
                    !1,
                    0,
                    0
                  ),
                  n.vertexAttribPointer(
                    t.attributes.aTextureCoord,
                    2,
                    n.FLOAT,
                    !1,
                    0,
                    32
                  ),
                  n.vertexAttribPointer(
                    t.attributes.aColor,
                    4,
                    n.FLOAT,
                    !1,
                    0,
                    64
                  ),
                  n.activeTexture(n.TEXTURE0),
                  n.bindTexture(n.TEXTURE_2D, e.texture),
                  n.drawElements(n.TRIANGLES, 6, n.UNSIGNED_SHORT, 0);
              }),
              (i.prototype.calculateMappedMatrix = function (t, e, i) {
                var r = e.worldTransform.copy(s.Matrix.TEMP_MATRIX),
                  n = e._texture.baseTexture,
                  o = i.identity(),
                  a = this.textureSize.height / this.textureSize.width;
                o.translate(
                  t.x / this.textureSize.width,
                  t.y / this.textureSize.height
                ),
                  o.scale(1, a);
                var h = this.textureSize.width / n.width,
                  l = this.textureSize.height / n.height;
                return (
                  (r.tx /= n.width * h),
                  (r.ty /= n.width * h),
                  r.invert(),
                  o.prepend(r),
                  o.scale(1, 1 / a),
                  o.scale(h, l),
                  o.translate(e.anchor.x, e.anchor.y),
                  o
                );
              }),
              (i.prototype.capFilterArea = function (t) {
                t.x < 0 && ((t.width += t.x), (t.x = 0)),
                  t.y < 0 && ((t.height += t.y), (t.y = 0)),
                  t.x + t.width > this.textureSize.width &&
                    (t.width = this.textureSize.width - t.x),
                  t.y + t.height > this.textureSize.height &&
                    (t.height = this.textureSize.height - t.y);
              }),
              (i.prototype.resize = function (t, e) {
                (this.textureSize.width = t), (this.textureSize.height = e);
                for (var i = 0; i < this.texturePool.length; i++)
                  this.texturePool[i].resize(t, e);
              }),
              (i.prototype.destroy = function () {
                (this.filterStack = null), (this.offsetY = 0);
                for (var t = 0; t < this.texturePool.length; t++)
                  this.texturePool[t].destroy();
                this.texturePool = null;
              });
          },
          {
            "../../../math": 23,
            "../utils/Quad": 54,
            "../utils/RenderTarget": 55,
            "./WebGLManager": 48,
          },
        ],
        45: [
          function (t, e) {
            function i(t) {
              r.call(this, t),
                (this.stencilStack = []),
                (this.reverse = !0),
                (this.count = 0),
                (this.alphaMaskPool = []);
            }
            var r = t("./WebGLManager"),
              n = t("../filters/SpriteMaskFilter");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.pushMask = function (t, e) {
                e.texture
                  ? this.pushSpriteMask(t, e)
                  : this.pushStencilMask(t, e);
              }),
              (i.prototype.popMask = function (t, e) {
                e.texture
                  ? this.popSpriteMask(t, e)
                  : this.popStencilMask(t, e);
              }),
              (i.prototype.pushSpriteMask = function (t, e) {
                var i = this.alphaMaskPool.pop();
                i || (i = [new n(e)]),
                  this.renderer.filterManager.pushFilter(t, i);
              }),
              (i.prototype.popSpriteMask = function () {
                var t = this.renderer.filterManager.popFilter();
                this.alphaMaskPool.push(t);
              }),
              (i.prototype.pushStencilMask = function (t, e) {
                this.renderer.stencilManager.pushMask(e);
              }),
              (i.prototype.popStencilMask = function (t, e) {
                this.renderer.stencilManager.popMask(e);
              });
          },
          { "../filters/SpriteMaskFilter": 42, "./WebGLManager": 48 },
        ],
        46: [
          function (t, e) {
            function i(t) {
              r.call(this, t),
                (this.maxAttibs = 10),
                (this.attribState = []),
                (this.tempAttribState = []);
              for (var e = 0; e < this.maxAttibs; e++) this.attribState[e] = !1;
              (this.stack = []),
                (this._currentId = -1),
                (this.currentShader = null),
                this.initPlugins();
            }
            var r = t("./WebGLManager"),
              n = t("../shaders/TextureShader"),
              o = t("../shaders/ComplexPrimitiveShader"),
              s = t("../shaders/PrimitiveShader"),
              a = t("../../../utils");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              a.pluginTarget.mixin(i),
              (e.exports = i),
              (i.prototype.onContextChange = function () {
                this.initPlugins(),
                  (this.defaultShader = new n(this)),
                  (this.primitiveShader = new s(this)),
                  (this.complexPrimitiveShader = new o(this));
              }),
              (i.prototype.setAttribs = function (t) {
                var e;
                for (e = 0; e < this.tempAttribState.length; e++)
                  this.tempAttribState[e] = !1;
                for (var i in t) this.tempAttribState[t[i]] = !0;
                var r = this.renderer.gl;
                for (e = 0; e < this.attribState.length; e++)
                  this.attribState[e] !== this.tempAttribState[e] &&
                    ((this.attribState[e] = this.tempAttribState[e]),
                    this.attribState[e]
                      ? r.enableVertexAttribArray(e)
                      : r.disableVertexAttribArray(e));
              }),
              (i.prototype.setShader = function (t) {
                return this._currentId === t.uuid
                  ? !1
                  : ((this._currentId = t.uuid),
                    (this.currentShader = t),
                    this.renderer.gl.useProgram(t.program),
                    this.setAttribs(t.attributes),
                    !0);
              }),
              (i.prototype.destroy = function () {
                r.prototype.destroy.call(this),
                  this.destroyPlugins(),
                  (this.attribState = null),
                  (this.tempAttribState = null);
              });
          },
          {
            "../../../utils": 68,
            "../shaders/ComplexPrimitiveShader": 49,
            "../shaders/PrimitiveShader": 50,
            "../shaders/TextureShader": 52,
            "./WebGLManager": 48,
          },
        ],
        47: [
          function (t, e) {
            function i(t) {
              r.call(this, t), (this.stencilMaskStack = null);
            }
            var r = t("./WebGLManager"),
              n = t("../../../utils");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.setMaskStack = function (t) {
                this.stencilMaskStack = t;
                var e = this.renderer.gl;
                0 === t.stencilStack.length
                  ? e.disable(e.STENCIL_TEST)
                  : e.enable(e.STENCIL_TEST);
              }),
              (i.prototype.pushStencil = function (t, e) {
                this.renderer.currentRenderTarget.attachStenilBuffer();
                var i = this.renderer.gl,
                  r = this.stencilMaskStack;
                this.bindGraphics(t, e, this.renderer),
                  0 === r.stencilStack.length &&
                    (i.enable(i.STENCIL_TEST),
                    i.clear(i.STENCIL_BUFFER_BIT),
                    (r.reverse = !0),
                    (r.count = 0)),
                  r.stencilStack.push(e);
                var n = r.count;
                i.colorMask(!1, !1, !1, !1),
                  i.stencilFunc(i.ALWAYS, 0, 255),
                  i.stencilOp(i.KEEP, i.KEEP, i.INVERT),
                  1 === e.mode
                    ? (i.drawElements(
                        i.TRIANGLE_FAN,
                        e.indices.length - 4,
                        i.UNSIGNED_SHORT,
                        0
                      ),
                      r.reverse
                        ? (i.stencilFunc(i.EQUAL, 255 - n, 255),
                          i.stencilOp(i.KEEP, i.KEEP, i.DECR))
                        : (i.stencilFunc(i.EQUAL, n, 255),
                          i.stencilOp(i.KEEP, i.KEEP, i.INCR)),
                      i.drawElements(
                        i.TRIANGLE_FAN,
                        4,
                        i.UNSIGNED_SHORT,
                        2 * (e.indices.length - 4)
                      ),
                      r.reverse
                        ? i.stencilFunc(i.EQUAL, 255 - (n + 1), 255)
                        : i.stencilFunc(i.EQUAL, n + 1, 255),
                      (r.reverse = !r.reverse))
                    : (r.reverse
                        ? (i.stencilFunc(i.EQUAL, n, 255),
                          i.stencilOp(i.KEEP, i.KEEP, i.INCR))
                        : (i.stencilFunc(i.EQUAL, 255 - n, 255),
                          i.stencilOp(i.KEEP, i.KEEP, i.DECR)),
                      i.drawElements(
                        i.TRIANGLE_STRIP,
                        e.indices.length,
                        i.UNSIGNED_SHORT,
                        0
                      ),
                      r.reverse
                        ? i.stencilFunc(i.EQUAL, n + 1, 255)
                        : i.stencilFunc(i.EQUAL, 255 - (n + 1), 255)),
                  i.colorMask(!0, !0, !0, !0),
                  i.stencilOp(i.KEEP, i.KEEP, i.KEEP),
                  r.count++;
              }),
              (i.prototype.bindGraphics = function (t, e) {
                this._currentGraphics = t;
                var i,
                  r = this.renderer.gl;
                1 === e.mode
                  ? ((i = this.renderer.shaderManager.complexPrimitiveShader),
                    this.renderer.shaderManager.setShader(i),
                    r.uniformMatrix3fv(
                      i.uniforms.translationMatrix._location,
                      !1,
                      t.worldTransform.toArray(!0)
                    ),
                    r.uniformMatrix3fv(
                      i.uniforms.projectionMatrix._location,
                      !1,
                      this.renderer.currentRenderTarget.projectionMatrix.toArray(
                        !0
                      )
                    ),
                    r.uniform3fv(i.uniforms.tint._location, n.hex2rgb(t.tint)),
                    r.uniform3fv(i.uniforms.color._location, e.color),
                    r.uniform1f(i.uniforms.alpha._location, t.worldAlpha),
                    r.bindBuffer(r.ARRAY_BUFFER, e.buffer),
                    r.vertexAttribPointer(
                      i.attributes.aVertexPosition,
                      2,
                      r.FLOAT,
                      !1,
                      8,
                      0
                    ),
                    r.bindBuffer(r.ELEMENT_ARRAY_BUFFER, e.indexBuffer))
                  : ((i = this.renderer.shaderManager.primitiveShader),
                    this.renderer.shaderManager.setShader(i),
                    r.uniformMatrix3fv(
                      i.uniforms.translationMatrix._location,
                      !1,
                      t.worldTransform.toArray(!0)
                    ),
                    r.uniformMatrix3fv(
                      i.uniforms.projectionMatrix._location,
                      !1,
                      this.renderer.currentRenderTarget.projectionMatrix.toArray(
                        !0
                      )
                    ),
                    r.uniform3fv(i.uniforms.tint._location, n.hex2rgb(t.tint)),
                    r.uniform1f(i.uniforms.alpha._location, t.worldAlpha),
                    r.bindBuffer(r.ARRAY_BUFFER, e.buffer),
                    r.vertexAttribPointer(
                      i.attributes.aVertexPosition,
                      2,
                      r.FLOAT,
                      !1,
                      24,
                      0
                    ),
                    r.vertexAttribPointer(
                      i.attributes.aColor,
                      4,
                      r.FLOAT,
                      !1,
                      24,
                      8
                    ),
                    r.bindBuffer(r.ELEMENT_ARRAY_BUFFER, e.indexBuffer));
              }),
              (i.prototype.popStencil = function (t, e) {
                var i = this.renderer.gl,
                  r = this.stencilMaskStack;
                if (
                  (r.stencilStack.pop(), r.count--, 0 === r.stencilStack.length)
                )
                  i.disable(i.STENCIL_TEST);
                else {
                  var n = r.count;
                  this.bindGraphics(t, e, this.renderer),
                    i.colorMask(!1, !1, !1, !1),
                    1 === e.mode
                      ? ((r.reverse = !r.reverse),
                        r.reverse
                          ? (i.stencilFunc(i.EQUAL, 255 - (n + 1), 255),
                            i.stencilOp(i.KEEP, i.KEEP, i.INCR))
                          : (i.stencilFunc(i.EQUAL, n + 1, 255),
                            i.stencilOp(i.KEEP, i.KEEP, i.DECR)),
                        i.drawElements(
                          i.TRIANGLE_FAN,
                          4,
                          i.UNSIGNED_SHORT,
                          2 * (e.indices.length - 4)
                        ),
                        i.stencilFunc(i.ALWAYS, 0, 255),
                        i.stencilOp(i.KEEP, i.KEEP, i.INVERT),
                        i.drawElements(
                          i.TRIANGLE_FAN,
                          e.indices.length - 4,
                          i.UNSIGNED_SHORT,
                          0
                        ),
                        r.reverse
                          ? i.stencilFunc(i.EQUAL, n, 255)
                          : i.stencilFunc(i.EQUAL, 255 - n, 255))
                      : (r.reverse
                          ? (i.stencilFunc(i.EQUAL, n + 1, 255),
                            i.stencilOp(i.KEEP, i.KEEP, i.DECR))
                          : (i.stencilFunc(i.EQUAL, 255 - (n + 1), 255),
                            i.stencilOp(i.KEEP, i.KEEP, i.INCR)),
                        i.drawElements(
                          i.TRIANGLE_STRIP,
                          e.indices.length,
                          i.UNSIGNED_SHORT,
                          0
                        ),
                        r.reverse
                          ? i.stencilFunc(i.EQUAL, n, 255)
                          : i.stencilFunc(i.EQUAL, 255 - n, 255)),
                    i.colorMask(!0, !0, !0, !0),
                    i.stencilOp(i.KEEP, i.KEEP, i.KEEP);
                }
              }),
              (i.prototype.destroy = function () {
                r.prototype.destroy.call(this),
                  (this.stencilMaskStack.stencilStack = null);
              }),
              (i.prototype.pushMask = function (t) {
                this.renderer.setObjectRenderer(this.renderer.plugins.graphics),
                  t.dirty &&
                    this.renderer.plugins.graphics.updateGraphics(
                      t,
                      this.renderer.gl
                    ),
                  t._webGL[this.renderer.gl.id].data.length &&
                    this.pushStencil(
                      t,
                      t._webGL[this.renderer.gl.id].data[0],
                      this.renderer
                    );
              }),
              (i.prototype.popMask = function (t) {
                this.renderer.setObjectRenderer(this.renderer.plugins.graphics),
                  this.popStencil(
                    t,
                    t._webGL[this.renderer.gl.id].data[0],
                    this.renderer
                  );
              });
          },
          { "../../../utils": 68, "./WebGLManager": 48 },
        ],
        48: [
          function (t, e) {
            function i(t) {
              this.renderer = t;
              var e = this;
              this.renderer.on(
                "context",
                (this._onContextChangeFn = function () {
                  e.onContextChange();
                })
              );
            }
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.onContextChange = function () {}),
              (i.prototype.destroy = function () {
                this.renderer.off("context", this._onContextChangeFn),
                  (this.renderer = null);
              });
          },
          {},
        ],
        49: [
          function (t, e) {
            function i(t) {
              r.call(
                this,
                t,
                [
                  "attribute vec2 aVertexPosition;",
                  "uniform mat3 translationMatrix;",
                  "uniform mat3 projectionMatrix;",
                  "uniform vec3 tint;",
                  "uniform float alpha;",
                  "uniform vec3 color;",
                  "varying vec4 vColor;",
                  "void main(void){",
                  "   gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);",
                  "   vColor = vec4(color * alpha * tint, alpha);",
                  "}",
                ].join("\n"),
                [
                  "precision mediump float;",
                  "varying vec4 vColor;",
                  "void main(void){",
                  "   gl_FragColor = vColor;",
                  "}",
                ].join("\n"),
                {
                  tint: { type: "3f", value: [0, 0, 0] },
                  alpha: { type: "1f", value: 0 },
                  color: { type: "3f", value: [0, 0, 0] },
                  translationMatrix: {
                    type: "mat3",
                    value: new Float32Array(9),
                  },
                  projectionMatrix: {
                    type: "mat3",
                    value: new Float32Array(9),
                  },
                },
                { aVertexPosition: 0 }
              );
            }
            var r = t("./Shader");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i);
          },
          { "./Shader": 51 },
        ],
        50: [
          function (t, e) {
            function i(t) {
              r.call(
                this,
                t,
                [
                  "attribute vec2 aVertexPosition;",
                  "attribute vec4 aColor;",
                  "uniform mat3 translationMatrix;",
                  "uniform mat3 projectionMatrix;",
                  "uniform float alpha;",
                  "uniform float flipY;",
                  "uniform vec3 tint;",
                  "varying vec4 vColor;",
                  "void main(void){",
                  "   gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);",
                  "   vColor = aColor * vec4(tint * alpha, alpha);",
                  "}",
                ].join("\n"),
                [
                  "precision mediump float;",
                  "varying vec4 vColor;",
                  "void main(void){",
                  "   gl_FragColor = vColor;",
                  "}",
                ].join("\n"),
                {
                  tint: { type: "3f", value: [0, 0, 0] },
                  alpha: { type: "1f", value: 0 },
                  translationMatrix: {
                    type: "mat3",
                    value: new Float32Array(9),
                  },
                  projectionMatrix: {
                    type: "mat3",
                    value: new Float32Array(9),
                  },
                },
                { aVertexPosition: 0, aColor: 0 }
              );
            }
            var r = t("./Shader");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i);
          },
          { "./Shader": 51 },
        ],
        51: [
          function (t, e) {
            function i(t, e, i, n, o) {
              if (!e || !i)
                throw new Error(
                  "Pixi.js Error. Shader requires vertexSrc and fragmentSrc"
                );
              (this.uuid = r.uuid()),
                (this.gl = t.renderer.gl),
                (this.program = null),
                (this.uniforms = n || {}),
                (this.attributes = o || {}),
                (this.textureCount = 1),
                (this.vertexSrc = e),
                (this.fragmentSrc = i),
                this.init();
            }
            var r = t("../../../utils"),
              n = t("../../../const");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.init = function () {
                this.compile(),
                  this.gl.useProgram(this.program),
                  this.cacheUniformLocations(Object.keys(this.uniforms)),
                  this.cacheAttributeLocations(Object.keys(this.attributes));
              }),
              (i.prototype.cacheUniformLocations = function (t) {
                for (var e = 0; e < t.length; ++e)
                  this.uniforms[t[e]]._location = this.gl.getUniformLocation(
                    this.program,
                    t[e]
                  );
              }),
              (i.prototype.cacheAttributeLocations = function (t) {
                for (var e = 0; e < t.length; ++e)
                  this.attributes[t[e]] = this.gl.getAttribLocation(
                    this.program,
                    t[e]
                  );
              }),
              (i.prototype.compile = function () {
                var t = this.gl,
                  e = this._glCompile(t.VERTEX_SHADER, this.vertexSrc),
                  i = this._glCompile(t.FRAGMENT_SHADER, this.fragmentSrc),
                  r = t.createProgram();
                return (
                  t.attachShader(r, e),
                  t.attachShader(r, i),
                  t.linkProgram(r),
                  t.getProgramParameter(r, t.LINK_STATUS) ||
                    (window.console.error(
                      "Pixi.js Error: Could not initialize shader."
                    ),
                    window.console.error(
                      "gl.VALIDATE_STATUS",
                      t.getProgramParameter(r, t.VALIDATE_STATUS)
                    ),
                    window.console.error("gl.getError()", t.getError()),
                    "" !== t.getProgramInfoLog(r) &&
                      window.console.warn(
                        "Pixi.js Warning: gl.getProgramInfoLog()",
                        t.getProgramInfoLog(r)
                      ),
                    t.deleteProgram(r),
                    (r = null)),
                  t.deleteShader(e),
                  t.deleteShader(i),
                  (this.program = r)
                );
              }),
              (i.prototype.syncUniform = function (t) {
                var e,
                  i,
                  n = t._location,
                  o = t.value,
                  s = this.gl;
                switch (t.type) {
                  case "i":
                  case "1i":
                    s.uniform1i(n, o);
                    break;
                  case "f":
                  case "1f":
                    s.uniform1f(n, o);
                    break;
                  case "2f":
                    s.uniform2f(n, o[0], o[1]);
                    break;
                  case "3f":
                    s.uniform3f(n, o[0], o[1], o[2]);
                    break;
                  case "4f":
                    s.uniform4f(n, o[0], o[1], o[2], o[3]);
                    break;
                  case "v2":
                    s.uniform2f(n, o.x, o.y);
                    break;
                  case "v3":
                    s.uniform3f(n, o.x, o.y, o.z);
                    break;
                  case "v4":
                    s.uniform4f(n, o.x, o.y, o.z, o.w);
                    break;
                  case "1iv":
                    s.uniform1iv(n, o);
                    break;
                  case "2iv":
                    s.uniform2iv(n, o);
                    break;
                  case "3iv":
                    s.uniform3iv(n, o);
                    break;
                  case "4iv":
                    s.uniform4iv(n, o);
                    break;
                  case "1fv":
                    s.uniform1fv(n, o);
                    break;
                  case "2fv":
                    s.uniform2fv(n, o);
                    break;
                  case "3fv":
                    s.uniform3fv(n, o);
                    break;
                  case "4fv":
                    s.uniform4fv(n, o);
                    break;
                  case "m2":
                  case "mat2":
                  case "Matrix2fv":
                    s.uniformMatrix2fv(n, t.transpose, o);
                    break;
                  case "m3":
                  case "mat3":
                  case "Matrix3fv":
                    s.uniformMatrix3fv(n, t.transpose, o);
                    break;
                  case "m4":
                  case "mat4":
                  case "Matrix4fv":
                    s.uniformMatrix4fv(n, t.transpose, o);
                    break;
                  case "c":
                    "number" == typeof o && (o = r.hex2rgb(o)),
                      s.uniform3f(n, o[0], o[1], o[2]);
                    break;
                  case "iv1":
                    s.uniform1iv(n, o);
                    break;
                  case "iv":
                    s.uniform3iv(n, o);
                    break;
                  case "fv1":
                    s.uniform1fv(n, o);
                    break;
                  case "fv":
                    s.uniform3fv(n, o);
                    break;
                  case "v2v":
                    for (
                      t._array || (t._array = new Float32Array(2 * o.length)),
                        e = 0,
                        i = o.length;
                      i > e;
                      ++e
                    )
                      (t._array[2 * e] = o[e].x),
                        (t._array[2 * e + 1] = o[e].y);
                    s.uniform2fv(n, t._array);
                    break;
                  case "v3v":
                    for (
                      t._array || (t._array = new Float32Array(3 * o.length)),
                        e = 0,
                        i = o.length;
                      i > e;
                      ++e
                    )
                      (t._array[3 * e] = o[e].x),
                        (t._array[3 * e + 1] = o[e].y),
                        (t._array[3 * e + 2] = o[e].z);
                    s.uniform3fv(n, t._array);
                    break;
                  case "v4v":
                    for (
                      t._array || (t._array = new Float32Array(4 * o.length)),
                        e = 0,
                        i = o.length;
                      i > e;
                      ++e
                    )
                      (t._array[4 * e] = o[e].x),
                        (t._array[4 * e + 1] = o[e].y),
                        (t._array[4 * e + 2] = o[e].z),
                        (t._array[4 * e + 3] = o[e].w);
                    s.uniform4fv(n, t._array);
                    break;
                  case "t":
                  case "sampler2D":
                    if (!t.value || !t.value.baseTexture.hasLoaded) break;
                    s.activeTexture(s["TEXTURE" + this.textureCount]);
                    var a = t.value.baseTexture._glTextures[s.id];
                    a || this.initSampler2D(t),
                      s.bindTexture(
                        s.TEXTURE_2D,
                        t.value.baseTexture._glTextures[s.id]
                      ),
                      s.uniform1i(t._location, this.textureCount),
                      this.textureCount++;
                    break;
                  default:
                    window.console.warn(
                      "Pixi.js Shader Warning: Unknown uniform type: " + t.type
                    );
                }
              }),
              (i.prototype.syncUniforms = function () {
                this.textureCount = 1;
                for (var t in this.uniforms) this.syncUniform(this.uniforms[t]);
              }),
              (i.prototype.initSampler2D = function (t) {
                var e = this.gl,
                  i = t.value.baseTexture;
                if (i.hasLoaded)
                  if (
                    ((i._glTextures[e.id] = e.createTexture()),
                    e.bindTexture(e.TEXTURE_2D, i._glTextures[e.id]),
                    e.pixelStorei(
                      e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,
                      i.premultipliedAlpha
                    ),
                    t.textureData)
                  ) {
                    var r = t.textureData;
                    e.texImage2D(
                      e.TEXTURE_2D,
                      0,
                      r.luminance ? e.LUMINANCE : e.RGBA,
                      e.RGBA,
                      e.UNSIGNED_BYTE,
                      i.source
                    ),
                      e.texParameteri(
                        e.TEXTURE_2D,
                        e.TEXTURE_MAG_FILTER,
                        r.magFilter ? r.magFilter : e.LINEAR
                      ),
                      e.texParameteri(
                        e.TEXTURE_2D,
                        e.TEXTURE_MIN_FILTER,
                        r.wrapS ? r.wrapS : e.CLAMP_TO_EDGE
                      ),
                      e.texParameteri(
                        e.TEXTURE_2D,
                        e.TEXTURE_WRAP_T,
                        r.wrapS ? r.wrapS : e.CLAMP_TO_EDGE
                      ),
                      e.texParameteri(
                        e.TEXTURE_2D,
                        e.TEXTURE_WRAP_S,
                        r.wrapT ? r.wrapT : e.CLAMP_TO_EDGE
                      );
                  } else
                    e.texImage2D(
                      e.TEXTURE_2D,
                      0,
                      e.RGBA,
                      e.RGBA,
                      e.UNSIGNED_BYTE,
                      i.source
                    ),
                      e.texParameteri(
                        e.TEXTURE_2D,
                        e.TEXTURE_MAG_FILTER,
                        i.scaleMode === n.SCALE_MODES.LINEAR
                          ? e.LINEAR
                          : e.NEAREST
                      ),
                      e.texParameteri(
                        e.TEXTURE_2D,
                        e.TEXTURE_MIN_FILTER,
                        i.scaleMode === n.SCALE_MODES.LINEAR
                          ? e.LINEAR
                          : e.NEAREST
                      ),
                      i.isPowerOfTwo
                        ? (e.texParameteri(
                            e.TEXTURE_2D,
                            e.TEXTURE_WRAP_S,
                            e.REPEAT
                          ),
                          e.texParameteri(
                            e.TEXTURE_2D,
                            e.TEXTURE_WRAP_T,
                            e.REPEAT
                          ))
                        : (e.texParameteri(
                            e.TEXTURE_2D,
                            e.TEXTURE_WRAP_S,
                            e.CLAMP_TO_EDGE
                          ),
                          e.texParameteri(
                            e.TEXTURE_2D,
                            e.TEXTURE_WRAP_T,
                            e.CLAMP_TO_EDGE
                          ));
              }),
              (i.prototype.destroy = function () {
                this.gl.deleteProgram(this.program),
                  (this.gl = null),
                  (this.uniforms = null),
                  (this.attributes = null),
                  (this.vertexSrc = null),
                  (this.fragmentSrc = null);
              }),
              (i.prototype._glCompile = function (t, e) {
                var i = this.gl.createShader(t);
                return (
                  this.gl.shaderSource(i, e),
                  this.gl.compileShader(i),
                  this.gl.getShaderParameter(i, this.gl.COMPILE_STATUS)
                    ? i
                    : (window.console.log(this.gl.getShaderInfoLog(i)), null)
                );
              });
          },
          { "../../../const": 13, "../../../utils": 68 },
        ],
        52: [
          function (t, e) {
            function i(t, e, i, n, o) {
              var s = {
                uSampler: { type: "sampler2D", value: 0 },
                projectionMatrix: {
                  type: "mat3",
                  value: new Float32Array(1, 0, 0, 0, 1, 0, 0, 0, 1),
                },
              };
              if (n) for (var a in n) s[a] = n[a];
              var h = { aVertexPosition: 0, aTextureCoord: 0, aColor: 0 };
              if (o) for (var l in o) h[l] = o[l];
              (e =
                e ||
                [
                  "precision lowp float;",
                  "attribute vec2 aVertexPosition;",
                  "attribute vec2 aTextureCoord;",
                  "attribute vec4 aColor;",
                  "uniform mat3 projectionMatrix;",
                  "varying vec2 vTextureCoord;",
                  "varying vec4 vColor;",
                  "void main(void){",
                  "   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);",
                  "   vTextureCoord = aTextureCoord;",
                  "   vColor = vec4(aColor.rgb * aColor.a, aColor.a);",
                  "}",
                ].join("\n")),
                (i =
                  i ||
                  [
                    "precision lowp float;",
                    "varying vec2 vTextureCoord;",
                    "varying vec4 vColor;",
                    "uniform sampler2D uSampler;",
                    "void main(void){",
                    "   gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;",
                    "}",
                  ].join("\n")),
                r.call(this, t, e, i, s, h);
            }
            var r = t("./Shader");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i);
          },
          { "./Shader": 51 },
        ],
        53: [
          function (t, e) {
            function i(t) {
              r.call(this, t);
            }
            var r = t("../managers/WebGLManager");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.start = function () {}),
              (i.prototype.stop = function () {
                this.flush();
              }),
              (i.prototype.flush = function () {}),
              (i.prototype.render = function () {});
          },
          { "../managers/WebGLManager": 48 },
        ],
        54: [
          function (t, e) {
            function i(t) {
              (this.gl = t),
                (this.vertices = new Float32Array([
                  0, 0, 200, 0, 200, 200, 0, 200,
                ])),
                (this.uvs = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1])),
                (this.colors = new Float32Array([
                  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                ])),
                (this.indices = new Uint16Array([0, 1, 2, 0, 3, 2])),
                (this.vertexBuffer = t.createBuffer()),
                (this.indexBuffer = t.createBuffer()),
                t.bindBuffer(t.ARRAY_BUFFER, this.vertexBuffer),
                t.bufferData(t.ARRAY_BUFFER, 128, t.DYNAMIC_DRAW),
                t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this.indexBuffer),
                t.bufferData(
                  t.ELEMENT_ARRAY_BUFFER,
                  this.indices,
                  t.STATIC_DRAW
                ),
                this.upload();
            }
            (i.prototype.constructor = i),
              (i.prototype.map = function (t, e) {
                var i = 0,
                  r = 0;
                (this.uvs[0] = i),
                  (this.uvs[1] = r),
                  (this.uvs[2] = i + e.width / t.width),
                  (this.uvs[3] = r),
                  (this.uvs[4] = i + e.width / t.width),
                  (this.uvs[5] = r + e.height / t.height),
                  (this.uvs[6] = i),
                  (this.uvs[7] = r + e.height / t.height),
                  (i = e.x),
                  (r = e.y),
                  (this.vertices[0] = i),
                  (this.vertices[1] = r),
                  (this.vertices[2] = i + e.width),
                  (this.vertices[3] = r),
                  (this.vertices[4] = i + e.width),
                  (this.vertices[5] = r + e.height),
                  (this.vertices[6] = i),
                  (this.vertices[7] = r + e.height),
                  this.upload();
              }),
              (i.prototype.upload = function () {
                var t = this.gl;
                t.bindBuffer(t.ARRAY_BUFFER, this.vertexBuffer),
                  t.bufferSubData(t.ARRAY_BUFFER, 0, this.vertices),
                  t.bufferSubData(t.ARRAY_BUFFER, 32, this.uvs),
                  t.bufferSubData(t.ARRAY_BUFFER, 64, this.colors);
              }),
              (e.exports = i);
          },
          {},
        ],
        55: [
          function (t, e) {
            var i = t("../../../math"),
              r = t("../../../utils"),
              n = t("../../../const"),
              o = t("./StencilMaskStack"),
              s = function (t, e, s, a, h, l) {
                if (
                  ((this.gl = t),
                  (this.frameBuffer = null),
                  (this.texture = null),
                  (this.size = new i.Rectangle(0, 0, 1, 1)),
                  (this.resolution = h || n.RESOLUTION),
                  (this.projectionMatrix = new i.Matrix()),
                  (this.transform = null),
                  (this.frame = null),
                  (this.stencilBuffer = null),
                  (this.stencilMaskStack = new o()),
                  (this.filterStack = [
                    { renderTarget: this, filter: [], bounds: this.size },
                  ]),
                  (this.scaleMode = a || n.SCALE_MODES.DEFAULT),
                  (this.root = l),
                  !this.root)
                ) {
                  (this.frameBuffer = t.createFramebuffer()),
                    (this.texture = t.createTexture()),
                    t.bindTexture(t.TEXTURE_2D, this.texture),
                    t.texParameteri(
                      t.TEXTURE_2D,
                      t.TEXTURE_MAG_FILTER,
                      a === n.SCALE_MODES.LINEAR ? t.LINEAR : t.NEAREST
                    ),
                    t.texParameteri(
                      t.TEXTURE_2D,
                      t.TEXTURE_MIN_FILTER,
                      a === n.SCALE_MODES.LINEAR ? t.LINEAR : t.NEAREST
                    );
                  var u = r.isPowerOfTwo(e, s);
                  u
                    ? (t.texParameteri(
                        t.TEXTURE_2D,
                        t.TEXTURE_WRAP_S,
                        t.REPEAT
                      ),
                      t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.REPEAT))
                    : (t.texParameteri(
                        t.TEXTURE_2D,
                        t.TEXTURE_WRAP_S,
                        t.CLAMP_TO_EDGE
                      ),
                      t.texParameteri(
                        t.TEXTURE_2D,
                        t.TEXTURE_WRAP_T,
                        t.CLAMP_TO_EDGE
                      )),
                    t.bindFramebuffer(t.FRAMEBUFFER, this.frameBuffer),
                    t.framebufferTexture2D(
                      t.FRAMEBUFFER,
                      t.COLOR_ATTACHMENT0,
                      t.TEXTURE_2D,
                      this.texture,
                      0
                    );
                }
                this.resize(e, s);
              };
            (s.prototype.constructor = s),
              (e.exports = s),
              (s.prototype.clear = function () {
                var t = this.gl;
                t.bindFramebuffer(t.FRAMEBUFFER, this.frameBuffer),
                  t.clearColor(0, 0, 0, 0),
                  t.clear(t.COLOR_BUFFER_BIT);
              }),
              (s.prototype.attachStenilBuffer = function () {
                if (!this.stencilBuffer && !this.root) {
                  var t = this.gl;
                  (this.stencilBuffer = t.createRenderbuffer()),
                    t.bindRenderbuffer(t.RENDERBUFFER, this.stencilBuffer),
                    t.framebufferRenderbuffer(
                      t.FRAMEBUFFER,
                      t.DEPTH_STENCIL_ATTACHMENT,
                      t.RENDERBUFFER,
                      this.stencilBuffer
                    ),
                    t.renderbufferStorage(
                      t.RENDERBUFFER,
                      t.DEPTH_STENCIL,
                      this.size.width * this.resolution,
                      this.size.height * this.resolution
                    );
                }
              }),
              (s.prototype.activate = function () {
                var t = this.gl;
                t.bindFramebuffer(t.FRAMEBUFFER, this.frameBuffer);
                var e = this.frame || this.size;
                this.calculateProjection(e),
                  this.transform &&
                    this.projectionMatrix.append(this.transform),
                  t.viewport(
                    0,
                    0,
                    e.width * this.resolution,
                    e.height * this.resolution
                  );
              }),
              (s.prototype.calculateProjection = function (t) {
                var e = this.projectionMatrix;
                e.identity(),
                  this.root
                    ? ((e.a = (1 / t.width) * 2),
                      (e.d = (-1 / t.height) * 2),
                      (e.tx = -1 - t.x * e.a),
                      (e.ty = 1 - t.y * e.d))
                    : ((e.a = (1 / t.width) * 2),
                      (e.d = (1 / t.height) * 2),
                      (e.tx = -1 - t.x * e.a),
                      (e.ty = -1 - t.y * e.d));
              }),
              (s.prototype.resize = function (t, e) {
                if (
                  ((t = 0 | t),
                  (e = 0 | e),
                  this.size.width !== t || this.size.height !== e)
                ) {
                  if (
                    ((this.size.width = t), (this.size.height = e), !this.root)
                  ) {
                    var i = this.gl;
                    i.bindTexture(i.TEXTURE_2D, this.texture),
                      i.texImage2D(
                        i.TEXTURE_2D,
                        0,
                        i.RGBA,
                        t * this.resolution,
                        e * this.resolution,
                        0,
                        i.RGBA,
                        i.UNSIGNED_BYTE,
                        null
                      ),
                      this.stencilBuffer &&
                        (i.bindRenderbuffer(i.RENDERBUFFER, this.stencilBuffer),
                        i.renderbufferStorage(
                          i.RENDERBUFFER,
                          i.DEPTH_STENCIL,
                          t * this.resolution,
                          e * this.resolution
                        ));
                  }
                  var r = this.frame || this.size;
                  this.calculateProjection(r);
                }
              }),
              (s.prototype.destroy = function () {
                var t = this.gl;
                t.deleteFramebuffer(this.frameBuffer),
                  t.deleteTexture(this.texture),
                  (this.frameBuffer = null),
                  (this.texture = null);
              });
          },
          {
            "../../../const": 13,
            "../../../math": 23,
            "../../../utils": 68,
            "./StencilMaskStack": 56,
          },
        ],
        56: [
          function (t, e) {
            function i() {
              (this.stencilStack = []), (this.reverse = !0), (this.count = 0);
            }
            (i.prototype.constructor = i), (e.exports = i);
          },
          {},
        ],
        57: [
          function (t, e) {
            function i(t) {
              o.call(this),
                (this.anchor = new r.Point()),
                (this._texture = null),
                (this._width = 0),
                (this._height = 0),
                (this.tint = 16777215),
                (this.blendMode = h.BLEND_MODES.NORMAL),
                (this.shader = null),
                (this.cachedTint = 16777215),
                (this.texture = t || n.EMPTY);
            }
            var r = t("../math"),
              n = t("../textures/Texture"),
              o = t("../display/Container"),
              s = t("../renderers/canvas/utils/CanvasTinter"),
              a = t("../utils"),
              h = t("../const");
            (i.prototype.destroy = function (t, e) {
              o.prototype.destroy.call(this),
                (this.anchor = null),
                t && this._texture.destroy(e),
                (this._texture = null),
                (this.shader = null);
            }),
              (i.prototype = Object.create(o.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                width: {
                  get: function () {
                    return this.scale.x * this.texture._frame.width;
                  },
                  set: function (t) {
                    (this.scale.x = t / this.texture._frame.width),
                      (this._width = t);
                  },
                },
                height: {
                  get: function () {
                    return this.scale.y * this.texture._frame.height;
                  },
                  set: function (t) {
                    (this.scale.y = t / this.texture._frame.height),
                      (this._height = t);
                  },
                },
                texture: {
                  get: function () {
                    return this._texture;
                  },
                  set: function (t) {
                    this._texture !== t &&
                      ((this._texture = t),
                      (this.cachedTint = 16777215),
                      t &&
                        (t.baseTexture.hasLoaded
                          ? this._onTextureUpdate()
                          : t.once(
                              "update",
                              this._onTextureUpdate.bind(this)
                            )));
                  },
                },
              }),
              (i.prototype._onTextureUpdate = function () {
                this._width &&
                  (this.scale.x = this._width / this.texture.frame.width),
                  this._height &&
                    (this.scale.y = this._height / this.texture.frame.height);
              }),
              (i.prototype._renderWebGL = function (t) {
                t.setObjectRenderer(t.plugins.sprite),
                  t.plugins.sprite.render(this);
              }),
              (i.prototype.getBounds = function (t) {
                if (!this._currentBounds) {
                  var e,
                    i,
                    r,
                    n,
                    o = this._texture._frame.width,
                    s = this._texture._frame.height,
                    a = o * (1 - this.anchor.x),
                    h = o * -this.anchor.x,
                    l = s * (1 - this.anchor.y),
                    u = s * -this.anchor.y,
                    c = t || this.worldTransform,
                    d = c.a,
                    p = c.b,
                    f = c.c,
                    m = c.d,
                    v = c.tx,
                    g = c.ty;
                  if (0 === p && 0 === f)
                    0 > d && (d *= -1),
                      0 > m && (m *= -1),
                      (e = d * h + v),
                      (i = d * a + v),
                      (r = m * u + g),
                      (n = m * l + g);
                  else {
                    var y = d * h + f * u + v,
                      x = m * u + p * h + g,
                      _ = d * a + f * u + v,
                      b = m * u + p * a + g,
                      w = d * a + f * l + v,
                      T = m * l + p * a + g,
                      S = d * h + f * l + v,
                      E = m * l + p * h + g;
                    (e = y),
                      (e = e > _ ? _ : e),
                      (e = e > w ? w : e),
                      (e = e > S ? S : e),
                      (r = x),
                      (r = r > b ? b : r),
                      (r = r > T ? T : r),
                      (r = r > E ? E : r),
                      (i = y),
                      (i = _ > i ? _ : i),
                      (i = w > i ? w : i),
                      (i = S > i ? S : i),
                      (n = x),
                      (n = b > n ? b : n),
                      (n = T > n ? T : n),
                      (n = E > n ? E : n);
                  }
                  var A = this._bounds;
                  (A.x = e),
                    (A.width = i - e),
                    (A.y = r),
                    (A.height = n - r),
                    (this._currentBounds = A);
                }
                return this._currentBounds;
              }),
              (i.prototype.renderCanvas = function (t) {
                if (
                  !(
                    !this.visible ||
                    this.alpha <= 0 ||
                    this.texture.crop.width <= 0 ||
                    this.texture.crop.height <= 0
                  ) &&
                  this.renderable
                ) {
                  if (
                    (this.blendMode !== t.currentBlendMode &&
                      ((t.currentBlendMode = this.blendMode),
                      (t.context.globalCompositeOperation =
                        t.blendModes[t.currentBlendMode])),
                    this._mask && t.maskManager.pushMask(this._mask, t),
                    this.texture.valid)
                  ) {
                    var e = this.texture.baseTexture.resolution / t.resolution;
                    (t.context.globalAlpha = this.worldAlpha),
                      t.smoothProperty &&
                        t.currentScaleMode !==
                          this.texture.baseTexture.scaleMode &&
                        ((t.currentScaleMode =
                          this.texture.baseTexture.scaleMode),
                        (t.context[t.smoothProperty] =
                          t.currentScaleMode === h.SCALE_MODES.LINEAR));
                    var i = this.texture.trim
                        ? this.texture.trim.x -
                          this.anchor.x * this.texture.trim.width
                        : this.anchor.x * -this.texture._frame.width,
                      r = this.texture.trim
                        ? this.texture.trim.y -
                          this.anchor.y * this.texture.trim.height
                        : this.anchor.y * -this.texture._frame.height;
                    t.roundPixels
                      ? (t.context.setTransform(
                          this.worldTransform.a,
                          this.worldTransform.b,
                          this.worldTransform.c,
                          this.worldTransform.d,
                          (this.worldTransform.tx * t.resolution) | 0,
                          (this.worldTransform.ty * t.resolution) | 0
                        ),
                        (i = 0 | i),
                        (r = 0 | r))
                      : t.context.setTransform(
                          this.worldTransform.a,
                          this.worldTransform.b,
                          this.worldTransform.c,
                          this.worldTransform.d,
                          this.worldTransform.tx * t.resolution,
                          this.worldTransform.ty * t.resolution
                        ),
                      16777215 !== this.tint
                        ? (this.cachedTint !== this.tint &&
                            ((this.cachedTint = this.tint),
                            (this.tintedTexture = s.getTintedTexture(
                              this,
                              this.tint
                            ))),
                          t.context.drawImage(
                            this.tintedTexture,
                            0,
                            0,
                            this.texture.crop.width,
                            this.texture.crop.height,
                            i / e,
                            r / e,
                            this.texture.crop.width / e,
                            this.texture.crop.height / e
                          ))
                        : t.context.drawImage(
                            this.texture.baseTexture.source,
                            this.texture.crop.x,
                            this.texture.crop.y,
                            this.texture.crop.width,
                            this.texture.crop.height,
                            i / e,
                            r / e,
                            this.texture.crop.width / e,
                            this.texture.crop.height / e
                          );
                  }
                  for (var n = 0, o = this.children.length; o > n; n++)
                    this.children[n].renderCanvas(t);
                  this._mask && t.maskManager.popMask(t);
                }
              }),
              (i.fromFrame = function (t) {
                var e = a.TextureCache[t];
                if (!e)
                  throw new Error(
                    'The frameId "' +
                      t +
                      '" does not exist in the texture cache' +
                      this
                  );
                return new i(e);
              }),
              (i.fromImage = function (t, e, r) {
                return new i(n.fromImage(t, e, r));
              });
          },
          {
            "../const": 13,
            "../display/Container": 14,
            "../math": 23,
            "../renderers/canvas/utils/CanvasTinter": 38,
            "../textures/Texture": 61,
            "../utils": 68,
          },
        ],
        58: [
          function (t, e) {
            function i(t) {
              r.call(this, t),
                (this.vertSize = 5),
                (this.vertByteSize = 4 * this.vertSize),
                (this.size = s.SPRITE_BATCH_SIZE);
              var e = 4 * this.size * this.vertByteSize,
                i = 6 * this.size;
              (this.vertices = new ArrayBuffer(e)),
                (this.positions = new Float32Array(this.vertices)),
                (this.colors = new Uint32Array(this.vertices)),
                (this.indices = new Uint16Array(i)),
                (this.lastIndexCount = 0);
              for (var n = 0, o = 0; i > n; n += 6, o += 4)
                (this.indices[n + 0] = o + 0),
                  (this.indices[n + 1] = o + 1),
                  (this.indices[n + 2] = o + 2),
                  (this.indices[n + 3] = o + 0),
                  (this.indices[n + 4] = o + 2),
                  (this.indices[n + 5] = o + 3);
              (this.drawing = !1),
                (this.currentBatchSize = 0),
                (this.currentBaseTexture = null),
                (this.textures = []),
                (this.blendModes = []),
                (this.shaders = []),
                (this.sprites = []),
                (this.shader = null);
            }
            var r = t("../../renderers/webgl/utils/ObjectRenderer"),
              n = t("../../renderers/webgl/shaders/Shader"),
              o = t("../../renderers/webgl/WebGLRenderer"),
              s = t("../../const");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              o.registerPlugin("sprite", i),
              (i.prototype.onContextChange = function () {
                var t = this.renderer.gl;
                (this.shader = this.renderer.shaderManager.defaultShader),
                  (this.vertexBuffer = t.createBuffer()),
                  (this.indexBuffer = t.createBuffer()),
                  t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this.indexBuffer),
                  t.bufferData(
                    t.ELEMENT_ARRAY_BUFFER,
                    this.indices,
                    t.STATIC_DRAW
                  ),
                  t.bindBuffer(t.ARRAY_BUFFER, this.vertexBuffer),
                  t.bufferData(t.ARRAY_BUFFER, this.vertices, t.DYNAMIC_DRAW),
                  (this.currentBlendMode = 99999);
              }),
              (i.prototype.render = function (t) {
                var e = t._texture;
                this.currentBatchSize >= this.size &&
                  (this.flush(), (this.currentBaseTexture = e.baseTexture));
                var i = e._uvs;
                if (i) {
                  var r,
                    n,
                    o,
                    s,
                    a = t.anchor.x,
                    h = t.anchor.y;
                  if (e.trim) {
                    var l = e.trim;
                    (n = l.x - a * l.width),
                      (r = n + e.crop.width),
                      (s = l.y - h * l.height),
                      (o = s + e.crop.height);
                  } else
                    (r = e._frame.width * (1 - a)),
                      (n = e._frame.width * -a),
                      (o = e._frame.height * (1 - h)),
                      (s = e._frame.height * -h);
                  var u = this.currentBatchSize * this.vertByteSize,
                    c = t.worldTransform,
                    d = c.a,
                    p = c.b,
                    f = c.c,
                    m = c.d,
                    v = c.tx,
                    g = c.ty,
                    y = this.colors,
                    x = this.positions;
                  this.renderer.roundPixels
                    ? ((x[u] = (d * n + f * s + v) | 0),
                      (x[u + 1] = (m * s + p * n + g) | 0),
                      (x[u + 5] = (d * r + f * s + v) | 0),
                      (x[u + 6] = (m * s + p * r + g) | 0),
                      (x[u + 10] = (d * r + f * o + v) | 0),
                      (x[u + 11] = (m * o + p * r + g) | 0),
                      (x[u + 15] = (d * n + f * o + v) | 0),
                      (x[u + 16] = (m * o + p * n + g) | 0))
                    : ((x[u] = d * n + f * s + v),
                      (x[u + 1] = m * s + p * n + g),
                      (x[u + 5] = d * r + f * s + v),
                      (x[u + 6] = m * s + p * r + g),
                      (x[u + 10] = d * r + f * o + v),
                      (x[u + 11] = m * o + p * r + g),
                      (x[u + 15] = d * n + f * o + v),
                      (x[u + 16] = m * o + p * n + g)),
                    (x[u + 2] = i.x0),
                    (x[u + 3] = i.y0),
                    (x[u + 7] = i.x1),
                    (x[u + 8] = i.y1),
                    (x[u + 12] = i.x2),
                    (x[u + 13] = i.y2),
                    (x[u + 17] = i.x3),
                    (x[u + 18] = i.y3);
                  var _ = t.tint;
                  (y[u + 4] =
                    y[u + 9] =
                    y[u + 14] =
                    y[u + 19] =
                      (_ >> 16) +
                      (65280 & _) +
                      ((255 & _) << 16) +
                      ((255 * t.worldAlpha) << 24)),
                    (this.sprites[this.currentBatchSize++] = t);
                }
              }),
              (i.prototype.flush = function () {
                if (0 !== this.currentBatchSize) {
                  var t,
                    e = this.renderer.gl;
                  if (this.currentBatchSize > 0.5 * this.size)
                    e.bufferSubData(e.ARRAY_BUFFER, 0, this.vertices);
                  else {
                    var i = this.positions.subarray(
                      0,
                      this.currentBatchSize * this.vertByteSize
                    );
                    e.bufferSubData(e.ARRAY_BUFFER, 0, i);
                  }
                  for (
                    var r,
                      o,
                      s,
                      a,
                      h = 0,
                      l = 0,
                      u = null,
                      c = this.renderer.blendModeManager.currentBlendMode,
                      d = null,
                      p = !1,
                      f = !1,
                      m = 0,
                      v = this.currentBatchSize;
                    v > m;
                    m++
                  )
                    (a = this.sprites[m]),
                      (r = a._texture.baseTexture),
                      (o = a.blendMode),
                      (s = a.shader || this.shader),
                      (p = c !== o),
                      (f = d !== s),
                      (u !== r || p || f) &&
                        (this.renderBatch(u, h, l),
                        (l = m),
                        (h = 0),
                        (u = r),
                        p &&
                          ((c = o),
                          this.renderer.blendModeManager.setBlendMode(c)),
                        f &&
                          ((d = s),
                          (t = d.shaders ? d.shaders[e.id] : d),
                          t ||
                            ((t = new n(
                              this.renderer.shaderManager,
                              null,
                              d.fragmentSrc,
                              d.uniforms
                            )),
                            (d.shaders[e.id] = t)),
                          this.renderer.shaderManager.setShader(t),
                          e.uniformMatrix3fv(
                            t.uniforms.projectionMatrix._location,
                            !1,
                            this.renderer.currentRenderTarget.projectionMatrix.toArray(
                              !0
                            )
                          ))),
                      h++;
                  this.renderBatch(u, h, l), (this.currentBatchSize = 0);
                }
              }),
              (i.prototype.renderBatch = function (t, e, i) {
                if (0 !== e) {
                  var r = this.renderer.gl;
                  t._glTextures[r.id]
                    ? r.bindTexture(r.TEXTURE_2D, t._glTextures[r.id])
                    : this.renderer.updateTexture(t),
                    r.drawElements(
                      r.TRIANGLES,
                      6 * e,
                      r.UNSIGNED_SHORT,
                      6 * i * 2
                    ),
                    this.renderer.drawCount++;
                }
              }),
              (i.prototype.start = function () {
                var t = this.renderer.gl;
                t.activeTexture(t.TEXTURE0),
                  t.bindBuffer(t.ARRAY_BUFFER, this.vertexBuffer),
                  t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this.indexBuffer);
                var e = this.vertByteSize;
                t.vertexAttribPointer(
                  this.shader.attributes.aVertexPosition,
                  2,
                  t.FLOAT,
                  !1,
                  e,
                  0
                ),
                  t.vertexAttribPointer(
                    this.shader.attributes.aTextureCoord,
                    2,
                    t.FLOAT,
                    !1,
                    e,
                    8
                  ),
                  t.vertexAttribPointer(
                    this.shader.attributes.aColor,
                    4,
                    t.UNSIGNED_BYTE,
                    !0,
                    e,
                    16
                  );
              }),
              (i.prototype.destroy = function () {
                this.renderer.gl.deleteBuffer(this.vertexBuffer),
                  this.renderer.gl.deleteBuffer(this.indexBuffer),
                  this.shader.destroy(),
                  (this.renderer = null),
                  (this.vertices = null),
                  (this.positions = null),
                  (this.colors = null),
                  (this.indices = null),
                  (this.vertexBuffer = null),
                  (this.indexBuffer = null),
                  (this.currentBaseTexture = null),
                  (this.drawing = !1),
                  (this.textures = null),
                  (this.blendModes = null),
                  (this.shaders = null),
                  (this.sprites = null),
                  (this.shader = null);
              });
          },
          {
            "../../const": 13,
            "../../renderers/webgl/WebGLRenderer": 39,
            "../../renderers/webgl/shaders/Shader": 51,
            "../../renderers/webgl/utils/ObjectRenderer": 53,
          },
        ],
        59: [
          function (t, e) {
            function i(t, e, i) {
              (this.uuid = r.uuid()),
                (this.resolution = i || 1),
                (this.width = 100),
                (this.height = 100),
                (this.realWidth = 100),
                (this.realHeight = 100),
                (this.scaleMode = e || n.SCALE_MODES.DEFAULT),
                (this.hasLoaded = !1),
                (this.isLoading = !1),
                (this.source = null),
                (this.premultipliedAlpha = !0),
                (this.imageUrl = null),
                (this.isPowerOfTwo = !1),
                (this.mipmap = !1),
                (this._glTextures = []),
                t && this.loadSource(t);
            }
            var r = t("../utils"),
              n = t("../const");
            (i.prototype.constructor = i),
              (e.exports = i),
              r.eventTarget.mixin(i.prototype),
              (i.prototype.update = function () {
                this.emit("update", this);
              }),
              (i.prototype.loadSource = function (t) {
                var e = this.isLoading;
                if (
                  ((this.hasLoaded = !1),
                  (this.isLoading = !1),
                  e &&
                    this.source &&
                    ((this.source.onload = null), (this.source.onerror = null)),
                  (this.source = t),
                  (this.source.complete || this.source.getContext) &&
                    this.source.width &&
                    this.source.height)
                )
                  this._sourceLoaded();
                else if (!t.getContext) {
                  this.isLoading = !0;
                  var i = this;
                  (t.onload = function () {
                    (t.onload = null),
                      (t.onerror = null),
                      i.isLoading &&
                        ((i.isLoading = !1),
                        i._sourceLoaded(),
                        i.emit("loaded", i));
                  }),
                    (t.onerror = function () {
                      (t.onload = null),
                        (t.onerror = null),
                        i.isLoading && ((i.isLoading = !1), i.emit("error", i));
                    }),
                    t.complete &&
                      t.src &&
                      ((this.isLoading = !1),
                      (t.onload = null),
                      (t.onerror = null),
                      t.width && t.height
                        ? (this._sourceLoaded(), e && this.emit("loaded", this))
                        : e && this.emit("error", this));
                }
              }),
              (i.prototype._sourceLoaded = function () {
                (this.hasLoaded = !0),
                  (this.realWidth =
                    this.source.naturalWidth || this.source.width),
                  (this.realHeight =
                    this.source.naturalHeight || this.source.height),
                  (this.width = this.realWidth / this.resolution),
                  (this.height = this.realHeight / this.resolution),
                  (this.isPowerOfTwo = r.isPowerOfTwo(this.width, this.height)),
                  this.update();
              }),
              (i.prototype.destroy = function () {
                this.imageUrl
                  ? (delete r.BaseTextureCache[this.imageUrl],
                    delete r.TextureCache[this.imageUrl],
                    (this.imageUrl = null),
                    navigator.isCocoonJS || (this.source.src = ""))
                  : this.source &&
                    this.source._pixiId &&
                    delete r.BaseTextureCache[this.source._pixiId],
                  (this.source = null),
                  this.dispose();
              }),
              (i.prototype.dispose = function () {
                this.emit("dispose", this);
              }),
              (i.prototype.updateSourceImage = function (t) {
                (this.source.src = t), this.loadSource(this.source);
              }),
              (i.fromImage = function (t, e, n) {
                var o = r.BaseTextureCache[t];
                if (
                  (void 0 === e && 0 !== t.indexOf("data:") && (e = !0), !o)
                ) {
                  var s = new Image();
                  e && (s.crossOrigin = ""),
                    (o = new i(s, n)),
                    (o.imageUrl = t),
                    (s.src = t),
                    (r.BaseTextureCache[t] = o),
                    (this.resolution = r.getResolutionOfUrl(t));
                }
                return o;
              }),
              (i.fromCanvas = function (t, e) {
                t._pixiId || (t._pixiId = "canvas_" + r.uuid());
                var n = r.BaseTextureCache[t._pixiId];
                return (
                  n || ((n = new i(t, e)), (r.BaseTextureCache[t._pixiId] = n)),
                  n
                );
              });
          },
          { "../const": 13, "../utils": 68 },
        ],
        60: [
          function (t, e) {
            function i(t, e, i, l, u) {
              if (!t)
                throw new Error(
                  "Unable to create RenderTexture, you must pass a renderer into the constructor."
                );
              (e = e || 100), (i = i || 100), (u = u || h.RESOLUTION);
              var c = new r();
              if (
                ((c.width = e),
                (c.height = i),
                (c.resolution = u),
                (c.scaleMode = l || h.SCALE_MODES.DEFAULT),
                (c.hasLoaded = !0),
                n.call(this, c, new a.Rectangle(0, 0, e, i)),
                (this.width = e),
                (this.height = i),
                (this.resolution = u),
                (this.render = null),
                (this.renderer = t),
                this.renderer.type === h.RENDERER_TYPE.WEBGL)
              ) {
                var d = this.renderer.gl;
                (this.textureBuffer = new o(
                  d,
                  this.width,
                  this.height,
                  null,
                  this.resolution
                )),
                  (this.baseTexture._glTextures[d.id] =
                    this.textureBuffer.texture),
                  (this.render = this.renderWebGL);
              } else
                (this.render = this.renderCanvas),
                  (this.textureBuffer = new s(
                    this.width * this.resolution,
                    this.height * this.resolution
                  )),
                  (this.baseTexture.source = this.textureBuffer.canvas);
              (this.valid = !0), this._updateUvs();
            }
            var r = t("./BaseTexture"),
              n = t("./Texture"),
              o = t("../renderers/webgl/utils/RenderTarget"),
              s = t("../renderers/canvas/utils/CanvasBuffer"),
              a = t("../math"),
              h = t("../const"),
              l = new a.Matrix();
            (i.prototype = Object.create(n.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.resize = function (t, e, i) {
                (t !== this.width || e !== this.height) &&
                  ((this.valid = t > 0 && e > 0),
                  (this.width = this._frame.width = this.crop.width = t),
                  (this.height = this._frame.height = this.crop.height = e),
                  i &&
                    ((this.baseTexture.width = this.width),
                    (this.baseTexture.height = this.height)),
                  this.renderer.type === h.RENDERER_TYPE.WEBGL &&
                    ((this.projection.x = this.width / 2),
                    (this.projection.y = -this.height / 2)),
                  this.valid &&
                    this.textureBuffer.resize(
                      this.width * this.resolution,
                      this.height * this.resolution
                    ));
              }),
              (i.prototype.clear = function () {
                this.valid &&
                  (this.renderer.type === h.RENDERER_TYPE.WEBGL &&
                    this.renderer.gl.bindFramebuffer(
                      this.renderer.gl.FRAMEBUFFER,
                      this.textureBuffer.frameBuffer
                    ),
                  this.textureBuffer.clear());
              }),
              (i.prototype.renderWebGL = function (t, e, i, r) {
                if (this.valid) {
                  if (
                    ((r = !!r),
                    (this.textureBuffer.transform = e),
                    (t.worldAlpha = t.alpha),
                    r)
                  ) {
                    t.worldTransform.identity();
                    var n,
                      o,
                      s = t.children;
                    for (n = 0, o = s.length; o > n; ++n)
                      s[n].updateTransform();
                  }
                  i && this.textureBuffer.clear(),
                    this.renderer.renderDisplayObject(t, this.textureBuffer);
                }
              }),
              (i.prototype.renderCanvas = function (t, e, i, r) {
                if (this.valid) {
                  r = !!r;
                  var n = t.worldTransform,
                    o = l;
                  o.identity(),
                    e && o.append(e),
                    (t.worldTransform = o),
                    (t.worldAlpha = 1);
                  var s,
                    a,
                    h = t.children;
                  for (s = 0, a = h.length; a > s; ++s) h[s].updateTransform();
                  i && this.textureBuffer.clear(), (t.worldTransform = n);
                  var u = this.textureBuffer.context,
                    c = this.renderer.resolution;
                  (this.renderer.resolution = this.resolution),
                    this.renderer.renderDisplayObject(t, u),
                    (this.renderer.resolution = c);
                }
              }),
              (i.prototype.destroy = function () {
                n.prototype.destroy.call(this, !0),
                  this.textureBuffer.destroy(),
                  (this.renderer = null);
              }),
              (i.prototype.getImage = function () {
                var t = new Image();
                return (t.src = this.getBase64()), t;
              }),
              (i.prototype.getBase64 = function () {
                return this.getCanvas().toDataURL();
              }),
              (i.prototype.getCanvas = function () {
                if (this.renderer.type === h.RENDERER_TYPE.WEBGL) {
                  var t = this.renderer.gl,
                    e = this.textureBuffer.width,
                    i = this.textureBuffer.height,
                    r = new Uint8Array(4 * e * i);
                  t.bindFramebuffer(
                    t.FRAMEBUFFER,
                    this.textureBuffer.frameBuffer
                  ),
                    t.readPixels(0, 0, e, i, t.RGBA, t.UNSIGNED_BYTE, r),
                    t.bindFramebuffer(t.FRAMEBUFFER, null);
                  var n = new s(e, i),
                    o = n.context.getImageData(0, 0, e, i);
                  return (
                    o.data.set(r), n.context.putImageData(o, 0, 0), n.canvas
                  );
                }
                return this.textureBuffer.canvas;
              });
          },
          {
            "../const": 13,
            "../math": 23,
            "../renderers/canvas/utils/CanvasBuffer": 35,
            "../renderers/webgl/utils/RenderTarget": 55,
            "./BaseTexture": 59,
            "./Texture": 61,
          },
        ],
        61: [
          function (t, e) {
            function i(t, e, r, n, o) {
              (this.noFrame = !1),
                e || ((this.noFrame = !0), (e = new a.Rectangle(0, 0, 1, 1))),
                t instanceof i && (t = t.baseTexture),
                (this.baseTexture = t),
                (this._frame = e),
                (this.trim = n),
                (this.valid = !1),
                (this.requiresUpdate = !1),
                (this._uvs = null),
                (this.width = 0),
                (this.height = 0),
                (this.crop = r || e),
                (this.rotate = !!o),
                t.hasLoaded
                  ? (this.noFrame &&
                      (e = new a.Rectangle(0, 0, t.width, t.height)),
                    (this.frame = e))
                  : t.addEventListener(
                      "loaded",
                      this.onBaseTextureLoaded.bind(this)
                    );
            }
            var r = t("./BaseTexture"),
              n = t("./VideoBaseTexture"),
              o = t("./TextureUvs"),
              s = t("../utils/eventTarget"),
              a = t("../math"),
              h = t("../utils");
            (i.prototype.constructor = i),
              (e.exports = i),
              s.mixin(i.prototype),
              Object.defineProperties(i.prototype, {
                frame: {
                  get: function () {
                    return this._frame;
                  },
                  set: function (t) {
                    if (
                      ((this._frame = t),
                      (this.noFrame = !1),
                      (this.width = t.width),
                      (this.height = t.height),
                      !this.trim &&
                        !this.rotate &&
                        (t.x + t.width > this.baseTexture.width ||
                          t.y + t.height > this.baseTexture.height))
                    )
                      throw new Error(
                        "Texture Error: frame does not fit inside the base Texture dimensions " +
                          this
                      );
                    (this.valid =
                      t &&
                      t.width &&
                      t.height &&
                      this.baseTexture.source &&
                      this.baseTexture.hasLoaded),
                      this.trim
                        ? ((this.width = this.trim.width),
                          (this.height = this.trim.height),
                          (this._frame.width = this.trim.width),
                          (this._frame.height = this.trim.height))
                        : (this.crop = t),
                      this.valid && this._updateUvs();
                  },
                },
              }),
              (i.prototype.update = function () {
                this.baseTexture.update();
              }),
              (i.prototype.onBaseTextureLoaded = function () {
                var t = this.baseTexture;
                t.removeEventListener("loaded", this.onLoaded),
                  (this.frame = this.noFrame
                    ? new a.Rectangle(0, 0, t.width, t.height)
                    : this._frame),
                  this.dispatchEvent({ type: "update", content: this });
              }),
              (i.prototype.destroy = function (t) {
                t && this.baseTexture.destroy(), (this.valid = !1);
              }),
              (i.prototype._updateUvs = function () {
                this._uvs || (this._uvs = new o()),
                  this._uvs.set(this.crop, this.baseTexture, this.rotate);
              }),
              (i.fromImage = function (t, e, n) {
                var o = h.TextureCache[t];
                return (
                  o ||
                    ((o = new i(r.fromImage(t, e, n))),
                    (h.TextureCache[t] = o)),
                  o
                );
              }),
              (i.fromFrame = function (t) {
                var e = h.TextureCache[t];
                if (!e)
                  throw new Error(
                    'The frameId "' +
                      t +
                      '" does not exist in the texture cache' +
                      this
                  );
                return e;
              }),
              (i.fromCanvas = function (t, e) {
                return new i(r.fromCanvas(t, e));
              }),
              (i.fromVideo = function (t, e) {
                return new i(n.baseTextureFromVideo(t, e));
              }),
              (i.addTextureToCache = function (t, e) {
                h.TextureCache[e] = t;
              }),
              (i.removeTextureFromCache = function (t) {
                var e = h.TextureCache[t];
                return (
                  delete h.TextureCache[t], delete h.BaseTextureCache[t], e
                );
              }),
              (i.emptyTexture = new i(new r()));
          },
          {
            "../math": 23,
            "../utils": 68,
            "../utils/eventTarget": 67,
            "./BaseTexture": 59,
            "./TextureUvs": 62,
            "./VideoBaseTexture": 63,
          },
        ],
        62: [
          function (t, e) {
            function i() {
              (this.x0 = 0),
                (this.y0 = 0),
                (this.x1 = 0),
                (this.y1 = 0),
                (this.x2 = 0),
                (this.y2 = 0),
                (this.x3 = 0),
                (this.y3 = 0);
            }
            (e.exports = i),
              (i.prototype.set = function (t, e, i) {
                var r = e.width,
                  n = e.height;
                i
                  ? ((this.x0 = (t.x + t.height) / r),
                    (this.y0 = t.y / n),
                    (this.x1 = (t.x + t.height) / r),
                    (this.y1 = (t.y + t.width) / n),
                    (this.x2 = t.x / r),
                    (this.y2 = (t.y + t.width) / n),
                    (this.x3 = t.x / r),
                    (this.y3 = t.y / n))
                  : ((this.x0 = t.x / r),
                    (this.y0 = t.y / n),
                    (this.x1 = (t.x + t.width) / r),
                    (this.y1 = t.y / n),
                    (this.x2 = (t.x + t.width) / r),
                    (this.y2 = (t.y + t.height) / n),
                    (this.x3 = t.x / r),
                    (this.y3 = (t.y + t.height) / n));
              });
          },
          {},
        ],
        63: [
          function (t, e) {
            function i(t, e) {
              if (!t) throw new Error("No video source element specified.");
              (t.readyState === t.HAVE_ENOUGH_DATA ||
                t.readyState === t.HAVE_FUTURE_DATA) &&
                t.width &&
                t.height &&
                (t.complete = !0),
                n.call(this, t, e),
                (this.autoUpdate = !1),
                (this._onUpdate = this._onUpdate.bind(this)),
                (this._onCanPlay = this._onCanPlay.bind(this)),
                t.complete ||
                  (t.addEventListener("canplay", this._onCanPlay),
                  t.addEventListener("canplaythrough", this._onCanPlay),
                  t.addEventListener("play", this._onPlayStart.bind(this)),
                  t.addEventListener("pause", this._onPlayStop.bind(this))),
                (this.__loaded = !1);
            }
            function r(t, e) {
              e || (e = "video/" + t.substr(t.lastIndexOf(".") + 1));
              var i = document.createElement("source");
              return (i.src = t), (i.type = e), i;
            }
            var n = t("./BaseTexture"),
              o = t("../utils");
            (i.prototype = Object.create(n.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype._onUpdate = function () {
                this.autoUpdate &&
                  (window.requestAnimationFrame(this._onUpdate), this.update());
              }),
              (i.prototype._onPlayStart = function () {
                this.autoUpdate ||
                  (window.requestAnimationFrame(this._onUpdate),
                  (this.autoUpdate = !0));
              }),
              (i.prototype._onPlayStop = function () {
                this.autoUpdate = !1;
              }),
              (i.prototype._onCanPlay = function () {
                (this.hasLoaded = !0),
                  this.source &&
                    (this.source.removeEventListener(
                      "canplay",
                      this._onCanPlay
                    ),
                    this.source.removeEventListener(
                      "canplaythrough",
                      this._onCanPlay
                    ),
                    (this.width = this.source.videoWidth),
                    (this.height = this.source.videoHeight),
                    this.source.play(),
                    this.__loaded ||
                      ((this.__loaded = !0), this.emit("loaded", this)));
              }),
              (i.prototype.destroy = function () {
                this.source &&
                  this.source._pixiId &&
                  ((o.BaseTextureCache[this.source._pixiId] = null),
                  delete o.BaseTextureCache[this.source._pixiId],
                  (this.source._pixiId = null),
                  delete this.source._pixiId),
                  n.prototype.destroy.call(this);
              }),
              (i.fromVideo = function (t, e) {
                t._pixiId || (t._pixiId = "video_" + o.uuid());
                var r = o.BaseTextureCache[t._pixiId];
                return (
                  r || ((r = new i(t, e)), (o.BaseTextureCache[t._pixiId] = r)),
                  r
                );
              }),
              (i.fromUrl = function (t, e) {
                var n = document.createElement("video");
                if (Array.isArray(t))
                  for (var o = 0; o < t.length; ++o)
                    n.appendChild(r(t.src || t, t.mime));
                else n.appendChild(r(t.src || t, t.mime));
                return n.load(), n.play(), i.textureFromVideo(n, e);
              }),
              (i.fromUrls = i.fromUrl);
          },
          { "../utils": 68, "./BaseTexture": 59 },
        ],
        64: [
          function (t, e) {
            function i(t, e, i) {
              (this.__isEventObject = !0),
                (this.stopped = !1),
                (this.stoppedImmediate = !1),
                (this.target = t),
                (this.type = e),
                (this.data = i),
                (this.timeStamp = Date.now());
            }
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.stopPropagation = function () {
                this.stopped = !0;
              }),
              (i.prototype.stopImmediatePropagation = function () {
                this.stoppedImmediate = !0;
              });
          },
          {},
        ],
        65: [
          function (t, e) {
            var i = (e.exports = {});
            (i.Triangulate = function (t) {
              var e = !0,
                r = t.length >> 1;
              if (3 > r) return [];
              for (var n = [], o = [], s = 0; r > s; s++) o.push(s);
              s = 0;
              for (var a = r; a > 3; ) {
                var h = o[(s + 0) % a],
                  l = o[(s + 1) % a],
                  u = o[(s + 2) % a],
                  c = t[2 * h],
                  d = t[2 * h + 1],
                  p = t[2 * l],
                  f = t[2 * l + 1],
                  m = t[2 * u],
                  v = t[2 * u + 1],
                  g = !1;
                if (i._convex(c, d, p, f, m, v, e)) {
                  g = !0;
                  for (var y = 0; a > y; y++) {
                    var x = o[y];
                    if (
                      x !== h &&
                      x !== l &&
                      x !== u &&
                      i._PointInTriangle(
                        t[2 * x],
                        t[2 * x + 1],
                        c,
                        d,
                        p,
                        f,
                        m,
                        v
                      )
                    ) {
                      g = !1;
                      break;
                    }
                  }
                }
                if (g) n.push(h, l, u), o.splice((s + 1) % a, 1), a--, (s = 0);
                else if (s++ > 3 * a) {
                  if (!e) return null;
                  for (n = [], o = [], s = 0; r > s; s++) o.push(s);
                  (s = 0), (a = r), (e = !1);
                }
              }
              return n.push(o[0], o[1], o[2]), n;
            }),
              (i._PointInTriangle = function (t, e, i, r, n, o, s, a) {
                var h = s - i,
                  l = a - r,
                  u = n - i,
                  c = o - r,
                  d = t - i,
                  p = e - r,
                  f = h * h + l * l,
                  m = h * u + l * c,
                  v = h * d + l * p,
                  g = u * u + c * c,
                  y = u * d + c * p,
                  x = 1 / (f * g - m * m),
                  _ = (g * v - m * y) * x,
                  b = (f * y - m * v) * x;
                return _ >= 0 && b >= 0 && 1 > _ + b;
              }),
              (i._convex = function (t, e, i, r, n, o, s) {
                return (e - r) * (n - i) + (i - t) * (o - r) >= 0 === s;
              });
          },
          {},
        ],
        66: [
          function (t, e) {
            var i = t("./eventTarget"),
              r = t("./EventData"),
              n = function () {
                (this.updateBind = this.update.bind(this)),
                  (this.active = !1),
                  (this.eventData = new r(this, "tick", { deltaTime: 1 })),
                  (this.deltaTime = 1),
                  (this.timeElapsed = 0),
                  (this.lastTime = 0),
                  (this.speed = 1),
                  this.start();
              };
            i.mixin(n.prototype),
              (n.prototype.start = function () {
                this.active ||
                  ((this.active = !0), requestAnimationFrame(this.updateBind));
              }),
              (n.prototype.stop = function () {
                this.active && (this.active = !1);
              }),
              (n.prototype.update = function () {
                if (this.active) {
                  requestAnimationFrame(this.updateBind);
                  var t = new Date().getTime(),
                    e = t - this.lastTime;
                  e > 100 && (e = 100),
                    (this.deltaTime = 0.06 * e),
                    (this.deltaTime *= this.speed),
                    (this.eventData.data.deltaTime = this.deltaTime),
                    this.emit("tick", this.eventData),
                    (this.lastTime = t);
                }
              }),
              (e.exports = new n());
          },
          { "./EventData": 64, "./eventTarget": 67 },
        ],
        67: [
          function (t, e) {
            function i(t) {
              (t.listeners = function (t) {
                return (
                  (this._listeners = this._listeners || {}),
                  this._listeners[t] ? this._listeners[t].slice() : []
                );
              }),
                (t.emit = t.dispatchEvent =
                  function (t, e) {
                    if (
                      ((this._listeners = this._listeners || {}),
                      this._listeners[t])
                    ) {
                      (e && e.__isEventObject) ||
                        ((n.target = this),
                        (n.type = t),
                        (n.data = e),
                        (e = n));
                      var i,
                        r = this._listeners[t].slice(0),
                        o = r.length,
                        s = r[0];
                      for (i = 0; o > i; s = r[++i])
                        if ((s(e), e.stoppedImmediate)) return this;
                      return e.stopped ? this : this;
                    }
                  }),
                (t.on = t.addEventListener =
                  function (t, e) {
                    return (
                      (this._listeners = this._listeners || {}),
                      (this._listeners[t] = this._listeners[t] || []).push(e),
                      this
                    );
                  }),
                (t.once = function (t, e) {
                  function i() {
                    e.apply(r.off(t, i), arguments);
                  }
                  this._listeners = this._listeners || {};
                  var r = this;
                  return (i._originalHandler = e), this.on(t, i);
                }),
                (t.off = t.removeEventListener =
                  function (t, e) {
                    if (
                      ((this._listeners = this._listeners || {}),
                      !this._listeners[t])
                    )
                      return this;
                    for (
                      var i = this._listeners[t], r = e ? i.length : 0;
                      r-- > 0;

                    )
                      (i[r] === e || i[r]._originalHandler === e) &&
                        i.splice(r, 1);
                    return 0 === i.length && (this._listeners[t] = null), this;
                  }),
                (t.removeAllListeners = function (t) {
                  return (
                    (this._listeners = this._listeners || {}),
                    this._listeners[t]
                      ? ((this._listeners[t] = null), this)
                      : this
                  );
                });
            }
            var r = t("./EventData"),
              n = new r(null, null, {});
            e.exports = {
              mixin: function (t) {
                i(t);
              },
            };
          },
          { "./EventData": 64 },
        ],
        68: [
          function (t, e) {
            var i = t("../const"),
              r = (e.exports = {
                _uid: 0,
                _saidHello: !1,
                Ticker: t("./Ticker"),
                EventData: t("./EventData"),
                eventTarget: t("./eventTarget"),
                pluginTarget: t("./pluginTarget"),
                PolyK: t("./PolyK"),
                uuid: function () {
                  return ++r._uid;
                },
                hex2rgb: function (t, e) {
                  return (
                    (e = e || []),
                    (e[0] = ((t >> 16) & 255) / 255),
                    (e[1] = ((t >> 8) & 255) / 255),
                    (e[2] = (255 & t) / 255),
                    e
                  );
                },
                hex2string: function (t) {
                  return (
                    (t = t.toString(16)),
                    (t = "000000".substr(0, 6 - t.length) + t),
                    "#" + t
                  );
                },
                rgb2hex: function (t) {
                  return (
                    ((255 * t[0]) << 16) + ((255 * t[1]) << 8) + 255 * t[2]
                  );
                },
                canUseNewCanvasBlendModes: function () {
                  if ("undefined" == typeof document) return !1;
                  var t = document.createElement("canvas"),
                    e = t.getContext("2d");
                  return (
                    (t.width = 1),
                    (t.height = 1),
                    (e.fillStyle = "#000"),
                    e.fillRect(0, 0, 1, 1),
                    (e.globalCompositeOperation = "multiply"),
                    (e.fillStyle = "#fff"),
                    e.fillRect(0, 0, 1, 1),
                    0 === e.getImageData(0, 0, 1, 1).data[0]
                  );
                },
                getNextPowerOfTwo: function (t) {
                  if (t > 0 && 0 === (t & (t - 1))) return t;
                  for (var e = 1; t > e; ) e <<= 1;
                  return e;
                },
                isPowerOfTwo: function (t, e) {
                  return (
                    t > 0 && 0 === (t & (t - 1)) && e > 0 && 0 === (e & (e - 1))
                  );
                },
                getResolutionOfUrl: function (t) {
                  var e = i.RETINA_PREFIX.exec(t);
                  return e ? parseFloat(e[1]) : 1;
                },
                sayHello: function () {},
                TextureCache: {},
                BaseTextureCache: {},
              });
          },
          {
            "../const": 13,
            "./EventData": 64,
            "./PolyK": 65,
            "./Ticker": 66,
            "./eventTarget": 67,
            "./pluginTarget": 69,
          },
        ],
        69: [
          function (t, e) {
            function i(t) {
              (t.__plugins = {}),
                (t.registerPlugin = function (e, i) {
                  t.__plugins[e] = i;
                }),
                (t.prototype.initPlugins = function () {
                  this.plugins = this.plugins || {};
                  for (var e in t.__plugins)
                    this.plugins[e] = new t.__plugins[e](this);
                }),
                (t.prototype.destroyPlugins = function () {
                  for (var t in this.plugins)
                    this.plugins[t].destroy(), (this.plugins[t] = null);
                  this.plugins = null;
                });
            }
            e.exports = {
              mixin: function (t) {
                i(t);
              },
            };
          },
          {},
        ],
        70: [
          function (t, e) {
            function i(t) {
              r.Sprite.call(this, t[0]),
                (this._textures = t),
                (this.animationSpeed = 1),
                (this.loop = !0),
                (this.onComplete = null),
                (this.currentFrame = 0),
                (this.playing = !1),
                (this._updateBound = this.update.bind(this));
            }
            var r = t("../core"),
              n = t("../core/utils");
            (i.prototype = Object.create(r.Sprite.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                totalFrames: {
                  get: function () {
                    return this._textures.length;
                  },
                },
                textures: {
                  get: function () {
                    return this._textures;
                  },
                  set: function (t) {
                    (this._textures = t),
                      (this.texture =
                        this._textures[
                          Math.floor(this.currentFrame) % this._textures.length
                        ]);
                  },
                },
              }),
              (i.prototype.stop = function () {
                this.playing &&
                  ((this.playing = !1),
                  n.Ticker.off("tick", this._updateBound));
              }),
              (i.prototype.play = function () {
                this.playing ||
                  ((this.playing = !0), n.Ticker.on("tick", this._updateBound));
              }),
              (i.prototype.gotoAndStop = function (t) {
                this.stop(), (this.currentFrame = t);
                var e = Math.round(this.currentFrame);
                this.texture = this._textures[e % this._textures.length];
              }),
              (i.prototype.gotoAndPlay = function (t) {
                (this.currentFrame = t), this.play();
              }),
              (i.prototype.update = function (t) {
                this.currentFrame += this.animationSpeed * t.data.deltaTime;
                var e = Math.floor(this.currentFrame);
                0 > e
                  ? this.loop
                    ? ((this.currentFrame += this._textures.length),
                      (this.texture = this._textures[this.currentFrame]))
                    : (this.gotoAndStop(0),
                      this.onComplete && this.onComplete())
                  : this.loop || e < this._textures.length
                  ? (this.texture = this._textures[e % this._textures.length])
                  : e >= this._textures.length &&
                    (this.gotoAndStop(this.textures.length - 1),
                    this.onComplete && this.onComplete());
              }),
              (i.prototype.destroy = function () {
                this.stop(), r.Sprite.prototype.destroy.call(this);
              }),
              (i.fromFrames = function (t) {
                for (var e = [], n = 0; n < t.length; ++n)
                  e.push(new r.Texture.fromFrame(t[n]));
                return new i(e);
              }),
              (i.fromImages = function (t) {
                for (var e = [], n = 0; n < t.length; ++n)
                  e.push(new r.Texture.fromImage(t[n]));
                return new i(e);
              });
          },
          { "../core": 20, "../core/utils": 68 },
        ],
        71: [
          function (t, e) {
            function i(t, e) {
              r.call(this, t),
                (this.points = e),
                (this.vertices = new Float32Array(4 * e.length)),
                (this.uvs = new Float32Array(4 * e.length)),
                (this.colors = new Float32Array(2 * e.length)),
                (this.indices = new Uint16Array(2 * e.length)),
                this.refresh();
            }
            var r = t("./Strip");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.refresh = function () {
                var t = this.points;
                if (!(t.length < 1)) {
                  var e = this.uvs,
                    i = this.indices,
                    r = this.colors;
                  (e[0] = 0),
                    (e[1] = 0),
                    (e[2] = 0),
                    (e[3] = 1),
                    (r[0] = 1),
                    (r[1] = 1),
                    (i[0] = 0),
                    (i[1] = 1);
                  for (var n, o, s, a = t.length, h = 1; a > h; h++)
                    (n = t[h]),
                      (o = 4 * h),
                      (s = h / (a - 1)),
                      h % 2
                        ? ((e[o] = s),
                          (e[o + 1] = 0),
                          (e[o + 2] = s),
                          (e[o + 3] = 1))
                        : ((e[o] = s),
                          (e[o + 1] = 0),
                          (e[o + 2] = s),
                          (e[o + 3] = 1)),
                      (o = 2 * h),
                      (r[o] = 1),
                      (r[o + 1] = 1),
                      (o = 2 * h),
                      (i[o] = o),
                      (i[o + 1] = o + 1);
                }
              }),
              (i.prototype.updateTransform = function () {
                var t = this.points;
                if (!(t.length < 1)) {
                  for (
                    var e,
                      i,
                      r,
                      n,
                      o,
                      s,
                      a = t[0],
                      h = 0,
                      l = 0,
                      u = this.vertices,
                      c = t.length,
                      d = 0;
                    c > d;
                    d++
                  )
                    (i = t[d]),
                      (r = 4 * d),
                      (e = d < t.length - 1 ? t[d + 1] : i),
                      (l = -(e.x - a.x)),
                      (h = e.y - a.y),
                      (n = 10 * (1 - d / (c - 1))),
                      n > 1 && (n = 1),
                      (o = Math.sqrt(h * h + l * l)),
                      (s = this.texture.height / 2),
                      (h /= o),
                      (l /= o),
                      (h *= s),
                      (l *= s),
                      (u[r] = i.x + h),
                      (u[r + 1] = i.y + l),
                      (u[r + 2] = i.x - h),
                      (u[r + 3] = i.y - l),
                      (a = i);
                  this.containerUpdateTransform();
                }
              });
          },
          { "./Strip": 72 },
        ],
        72: [
          function (t, e) {
            function i(t) {
              r.Container.call(this),
                (this.texture = t),
                (this.uvs = new Float32Array([0, 1, 1, 1, 1, 0, 0, 1])),
                (this.vertices = new Float32Array([
                  0, 0, 100, 0, 100, 100, 0, 100,
                ])),
                (this.colors = new Float32Array([1, 1, 1, 1])),
                (this.indices = new Uint16Array([0, 1, 2, 3])),
                (this.dirty = !0),
                (this.blendMode = r.CONST.BLEND_MODES.NORMAL),
                (this.canvasPadding = 0),
                (this.drawMode = i.DrawModes.TRIANGLE_STRIP);
            }
            var r = t("../core");
            (i.prototype = Object.create(r.Container.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.renderWebGL = function (t) {
                !this.visible ||
                  this.alpha <= 0 ||
                  !this.renderable ||
                  (t.spriteBatch.stop(),
                  this._vertexBuffer || this._initWebGL(t),
                  t.shaderManager.setShader(
                    t.shaderManager.plugins.stripShader
                  ),
                  this._renderStrip(t),
                  t.spriteBatch.start());
              }),
              (i.prototype._initWebGL = function (t) {
                var e = t.gl;
                (this._vertexBuffer = e.createBuffer()),
                  (this._indexBuffer = e.createBuffer()),
                  (this._uvBuffer = e.createBuffer()),
                  (this._colorBuffer = e.createBuffer()),
                  e.bindBuffer(e.ARRAY_BUFFER, this._vertexBuffer),
                  e.bufferData(e.ARRAY_BUFFER, this.vertices, e.DYNAMIC_DRAW),
                  e.bindBuffer(e.ARRAY_BUFFER, this._uvBuffer),
                  e.bufferData(e.ARRAY_BUFFER, this.uvs, e.STATIC_DRAW),
                  e.bindBuffer(e.ARRAY_BUFFER, this._colorBuffer),
                  e.bufferData(e.ARRAY_BUFFER, this.colors, e.STATIC_DRAW),
                  e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this._indexBuffer),
                  e.bufferData(
                    e.ELEMENT_ARRAY_BUFFER,
                    this.indices,
                    e.STATIC_DRAW
                  );
              }),
              (i.prototype._renderStrip = function (t) {
                var e = t.gl,
                  r = t.projection,
                  n = t.offset,
                  o = t.shaderManager.plugins.stripShader,
                  s =
                    this.drawMode === i.DrawModes.TRIANGLE_STRIP
                      ? e.TRIANGLE_STRIP
                      : e.TRIANGLES;
                t.blendModeManager.setBlendMode(this.blendMode),
                  e.uniformMatrix3fv(
                    o.translationMatrix,
                    !1,
                    this.worldTransform.toArray(!0)
                  ),
                  e.uniform2f(o.projectionVector, r.x, -r.y),
                  e.uniform2f(o.offsetVector, -n.x, -n.y),
                  e.uniform1f(o.alpha, this.worldAlpha),
                  this.dirty
                    ? ((this.dirty = !1),
                      e.bindBuffer(e.ARRAY_BUFFER, this._vertexBuffer),
                      e.bufferData(
                        e.ARRAY_BUFFER,
                        this.vertices,
                        e.STATIC_DRAW
                      ),
                      e.vertexAttribPointer(
                        o.aVertexPosition,
                        2,
                        e.FLOAT,
                        !1,
                        0,
                        0
                      ),
                      e.bindBuffer(e.ARRAY_BUFFER, this._uvBuffer),
                      e.bufferData(e.ARRAY_BUFFER, this.uvs, e.STATIC_DRAW),
                      e.vertexAttribPointer(
                        o.aTextureCoord,
                        2,
                        e.FLOAT,
                        !1,
                        0,
                        0
                      ),
                      e.activeTexture(e.TEXTURE0),
                      this.texture.baseTexture._dirty[e.id]
                        ? t.updateTexture(this.texture.baseTexture)
                        : e.bindTexture(
                            e.TEXTURE_2D,
                            this.texture.baseTexture._glTextures[e.id]
                          ),
                      e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this._indexBuffer),
                      e.bufferData(
                        e.ELEMENT_ARRAY_BUFFER,
                        this.indices,
                        e.STATIC_DRAW
                      ))
                    : (e.bindBuffer(e.ARRAY_BUFFER, this._vertexBuffer),
                      e.bufferSubData(e.ARRAY_BUFFER, 0, this.vertices),
                      e.vertexAttribPointer(
                        o.aVertexPosition,
                        2,
                        e.FLOAT,
                        !1,
                        0,
                        0
                      ),
                      e.bindBuffer(e.ARRAY_BUFFER, this._uvBuffer),
                      e.vertexAttribPointer(
                        o.aTextureCoord,
                        2,
                        e.FLOAT,
                        !1,
                        0,
                        0
                      ),
                      e.activeTexture(e.TEXTURE0),
                      this.texture.baseTexture._dirty[e.id]
                        ? t.updateTexture(this.texture.baseTexture)
                        : e.bindTexture(
                            e.TEXTURE_2D,
                            this.texture.baseTexture._glTextures[e.id]
                          ),
                      e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this._indexBuffer)),
                  e.drawElements(s, this.indices.length, e.UNSIGNED_SHORT, 0);
              }),
              (i.prototype.renderCanvas = function (t) {
                if (this.visible && !(this.alpha <= 0) && this.renderable) {
                  var e = t.context,
                    r = this.worldTransform;
                  t.roundPixels
                    ? e.setTransform(r.a, r.b, r.c, r.d, 0 | r.tx, 0 | r.ty)
                    : e.setTransform(r.a, r.b, r.c, r.d, r.tx, r.ty),
                    this.drawMode === i.DrawModes.TRIANGLE_STRIP
                      ? this._renderCanvasTriangleStrip(e)
                      : this._renderCanvasTriangles(e);
                }
              }),
              (i.prototype._renderCanvasTriangleStrip = function (t) {
                for (
                  var e = this.vertices, i = this.uvs, r = e.length / 2, n = 0;
                  r - 2 > n;
                  n++
                ) {
                  var o = 2 * n;
                  this._renderCanvasDrawTriangle(t, e, i, o, o + 2, o + 4);
                }
              }),
              (i.prototype._renderCanvasTriangles = function (t) {
                for (
                  var e = this.vertices,
                    i = this.uvs,
                    r = this.indices,
                    n = r.length,
                    o = 0;
                  n > o;
                  o += 3
                ) {
                  var s = 2 * r[o],
                    a = 2 * r[o + 1],
                    h = 2 * r[o + 2];
                  this._renderCanvasDrawTriangle(t, e, i, s, a, h);
                }
              }),
              (i.prototype._renderCanvasDrawTriangle = function (
                t,
                e,
                i,
                r,
                n,
                o
              ) {
                var s = this.texture.baseTexture.source,
                  a = this.texture.width,
                  h = this.texture.height,
                  l = e[r],
                  u = e[n],
                  c = e[o],
                  d = e[r + 1],
                  p = e[n + 1],
                  f = e[o + 1],
                  m = i[r] * a,
                  v = i[n] * a,
                  g = i[o] * a,
                  y = i[r + 1] * h,
                  x = i[n + 1] * h,
                  _ = i[o + 1] * h;
                if (this.canvasPadding > 0) {
                  var b = this.canvasPadding / this.worldTransform.a,
                    w = this.canvasPadding / this.worldTransform.d,
                    T = (l + u + c) / 3,
                    S = (d + p + f) / 3,
                    E = l - T,
                    A = d - S,
                    C = Math.sqrt(E * E + A * A);
                  (l = T + (E / C) * (C + b)),
                    (d = S + (A / C) * (C + w)),
                    (E = u - T),
                    (A = p - S),
                    (C = Math.sqrt(E * E + A * A)),
                    (u = T + (E / C) * (C + b)),
                    (p = S + (A / C) * (C + w)),
                    (E = c - T),
                    (A = f - S),
                    (C = Math.sqrt(E * E + A * A)),
                    (c = T + (E / C) * (C + b)),
                    (f = S + (A / C) * (C + w));
                }
                t.save(),
                  t.beginPath(),
                  t.moveTo(l, d),
                  t.lineTo(u, p),
                  t.lineTo(c, f),
                  t.closePath(),
                  t.clip();
                var M = m * x + y * g + v * _ - x * g - y * v - m * _,
                  R = l * x + y * c + u * _ - x * c - y * u - l * _,
                  P = m * u + l * g + v * c - u * g - l * v - m * c,
                  O =
                    m * x * c +
                    y * u * g +
                    l * v * _ -
                    l * x * g -
                    y * v * c -
                    m * u * _,
                  D = d * x + y * f + p * _ - x * f - y * p - d * _,
                  F = m * p + d * g + v * f - p * g - d * v - m * f,
                  L =
                    m * x * f +
                    y * p * g +
                    d * v * _ -
                    d * x * g -
                    y * v * f -
                    m * p * _;
                t.transform(R / M, D / M, P / M, F / M, O / M, L / M),
                  t.drawImage(s, 0, 0),
                  t.restore();
              }),
              (i.prototype.renderStripFlat = function (t) {
                var e = this.context,
                  i = t.vertices,
                  r = i.length / 2;
                e.beginPath();
                for (var n = 1; r - 2 > n; n++) {
                  var o = 2 * n,
                    s = i[o],
                    a = i[o + 2],
                    h = i[o + 4],
                    l = i[o + 1],
                    u = i[o + 3],
                    c = i[o + 5];
                  e.moveTo(s, l), e.lineTo(a, u), e.lineTo(h, c);
                }
                (e.fillStyle = "#FF0000"), e.fill(), e.closePath();
              }),
              (i.prototype.onTextureUpdate = function () {
                this.updateFrame = !0;
              }),
              (i.prototype.getBounds = function (t) {
                for (
                  var e = t || this.worldTransform,
                    i = e.a,
                    n = e.b,
                    o = e.c,
                    s = e.d,
                    a = e.tx,
                    h = e.ty,
                    l = -1 / 0,
                    u = -1 / 0,
                    c = 1 / 0,
                    d = 1 / 0,
                    p = this.vertices,
                    f = 0,
                    m = p.length;
                  m > f;
                  f += 2
                ) {
                  var v = p[f],
                    g = p[f + 1],
                    y = i * v + o * g + a,
                    x = s * g + n * v + h;
                  (c = c > y ? y : c),
                    (d = d > x ? x : d),
                    (l = y > l ? y : l),
                    (u = x > u ? x : u);
                }
                if (c === -1 / 0 || 1 / 0 === u) return r.math.Rectangle.EMPTY;
                var _ = this._bounds;
                return (
                  (_.x = c),
                  (_.width = l - c),
                  (_.y = d),
                  (_.height = u - d),
                  (this._currentBounds = _),
                  _
                );
              }),
              (i.DrawModes = { TRIANGLE_STRIP: 0, TRIANGLES: 1 });
          },
          { "../core": 20 },
        ],
        73: [
          function (t, e) {
            function i(t) {
              r.Shader.call(
                this,
                t,
                [
                  "attribute vec2 aVertexPosition;",
                  "attribute vec2 aTextureCoord;",
                  "uniform mat3 translationMatrix;",
                  "uniform vec2 projectionVector;",
                  "uniform vec2 offsetVector;",
                  "varying vec2 vTextureCoord;",
                  "void main(void){",
                  "   vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);",
                  "   v -= offsetVector.xyx;",
                  "   gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);",
                  "   vTextureCoord = aTextureCoord;",
                  "}",
                ].join("\n"),
                [
                  "precision mediump float;",
                  "uniform float alpha;",
                  "uniform sampler2D uSampler;",
                  "varying vec2 vTextureCoord;",
                  "void main(void){",
                  "   gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;",
                  "}",
                ].join("\n"),
                {
                  alpha: { type: "1f", value: 0 },
                  translationMatrix: {
                    type: "mat3",
                    value: new Float32Array(9),
                  },
                }
              );
            }
            var r = t("../core");
            (i.prototype = Object.create(r.Shader.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i);
          },
          { "../core": 20 },
        ],
        74: [
          function (t, e) {
            function i(t, e, i) {
              r.Sprite.call(this, t),
                (this.tileScale = new r.math.Point(1, 1)),
                (this.tilePosition = new r.math.Point(0, 0)),
                (this._width = e || 100),
                (this._height = i || 100),
                (this._tileScaleOffset = new r.math.Point(1, 1)),
                (this._tilingTexture = null),
                (this._refreshTexture = !1),
                (this._uvs = new n());
            }
            var r = t("../core"),
              n = t("../core/textures/TextureUvs"),
              o = t("../core/textures/RenderTexture"),
              s = new r.Sprite(),
              a = new r.math.Point();
            (i.prototype = Object.create(r.Sprite.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                width: {
                  get: function () {
                    return this._width;
                  },
                  set: function (t) {
                    this._width = t;
                  },
                },
                height: {
                  get: function () {
                    return this._height;
                  },
                  set: function (t) {
                    this._height = t;
                  },
                },
              }),
              (i.prototype._onTextureUpdate = function () {
                r.Sprite.prototype._onTextureUpdate.call(this),
                  (this._refreshTexture = !0);
              }),
              (i.prototype._renderWebGL = function (t) {
                (!this._tilingTexture || this._refreshTexture) &&
                  this.generateTilingTexture(t, this.texture, !0);
                var e = this._tilingTexture;
                if (e) {
                  var i = this._uvs;
                  (this.tilePosition.x %=
                    e.baseTexture.width * this._tileScaleOffset.x),
                    (this.tilePosition.y %=
                      e.baseTexture.height * this._tileScaleOffset.y);
                  var r =
                      this.tilePosition.x /
                      (e.baseTexture.width * this._tileScaleOffset.x),
                    n =
                      this.tilePosition.y /
                      (e.baseTexture.height * this._tileScaleOffset.y),
                    o = this._width / e.baseTexture.width,
                    s = this._height / e.baseTexture.height;
                  (o /= this.tileScale.x),
                    (s /= this.tileScale.y),
                    (i.x0 = 0 - r),
                    (i.y0 = 0 - n),
                    (i.x1 = 1 * o - r),
                    (i.y1 = 0 - n),
                    (i.x2 = 1 * o - r),
                    (i.y2 = 1 * s - n),
                    (i.x3 = 0 - r),
                    (i.y3 = 1 * s - n);
                  var a = e._uvs,
                    h = e._frame.width,
                    l = e._frame.height;
                  (e._uvs = i),
                    (e._frame.width = this.width),
                    (e._frame.height = this.height),
                    t.setObjectRenderer(t.plugins.sprite),
                    t.plugins.sprite.render(this),
                    (e._uvs = a),
                    (e._frame.width = h),
                    (e._frame.height = l);
                }
              }),
              (i.prototype.renderCanvas = function (t) {
                if (this.visible && !(this.alpha <= 0)) {
                  var e = t.context;
                  this._mask && t.maskManager.pushMask(this._mask, t),
                    (e.globalAlpha = this.worldAlpha);
                  var i,
                    r,
                    n = this.worldTransform,
                    o = t.resolution;
                  if (
                    (e.setTransform(
                      n.a * o,
                      n.b * o,
                      n.c * o,
                      n.d * o,
                      n.tx * o,
                      n.ty * o
                    ),
                    !this.__tilePattern || this._refreshTexture)
                  ) {
                    if ((this.generateTilingTexture(!1), !this._tilingTexture))
                      return;
                    this.__tilePattern = e.createPattern(
                      this._tilingTexture.baseTexture.source,
                      "repeat"
                    );
                  }
                  this.blendMode !== t.currentBlendMode &&
                    ((t.currentBlendMode = this.blendMode),
                    (e.globalCompositeOperation =
                      t.blendModes[t.currentBlendMode]));
                  var s = this.tilePosition,
                    a = this.tileScale;
                  for (
                    s.x %= this._tilingTexture.baseTexture.width,
                      s.y %= this._tilingTexture.baseTexture.height,
                      e.scale(a.x, a.y),
                      e.translate(
                        s.x + this.anchor.x * -this._width,
                        s.y + this.anchor.y * -this._height
                      ),
                      e.fillStyle = this.__tilePattern,
                      e.fillRect(
                        -s.x,
                        -s.y,
                        this._width / a.x,
                        this._height / a.y
                      ),
                      e.translate(
                        -s.x + this.anchor.x * this._width,
                        -s.y + this.anchor.y * this._height
                      ),
                      e.scale(1 / a.x, 1 / a.y),
                      this._mask && t.maskManager.popMask(t),
                      i = 0,
                      r = this.children.length;
                    r > i;
                    ++i
                  )
                    this.children[i].renderCanvas(t);
                }
              }),
              (i.prototype.getBounds = function () {
                var t,
                  e,
                  i,
                  r,
                  n = this._width,
                  o = this._height,
                  s = n * (1 - this.anchor.x),
                  a = n * -this.anchor.x,
                  h = o * (1 - this.anchor.y),
                  l = o * -this.anchor.y,
                  u = this.worldTransform,
                  c = u.a,
                  d = u.b,
                  p = u.c,
                  f = u.d,
                  m = u.tx,
                  v = u.ty,
                  g = c * a + p * l + m,
                  y = f * l + d * a + v,
                  x = c * s + p * l + m,
                  _ = f * l + d * s + v,
                  b = c * s + p * h + m,
                  w = f * h + d * s + v,
                  T = c * a + p * h + m,
                  S = f * h + d * a + v;
                (t = g),
                  (t = t > x ? x : t),
                  (t = t > b ? b : t),
                  (t = t > T ? T : t),
                  (i = y),
                  (i = i > _ ? _ : i),
                  (i = i > w ? w : i),
                  (i = i > S ? S : i),
                  (e = g),
                  (e = x > e ? x : e),
                  (e = b > e ? b : e),
                  (e = T > e ? T : e),
                  (r = y),
                  (r = _ > r ? _ : r),
                  (r = w > r ? w : r),
                  (r = S > r ? S : r);
                var E = this._bounds;
                return (
                  (E.x = t),
                  (E.width = e - t),
                  (E.y = i),
                  (E.height = r - i),
                  (this._currentBounds = E),
                  E
                );
              }),
              (i.prototype.onTextureUpdate = function () {}),
              (i.prototype.generateTilingTexture = function (t, e, i) {
                if (this.texture.baseTexture.hasLoaded) {
                  e = this.originalTexture || this.texture;
                  var n,
                    a,
                    h = e.frame,
                    l =
                      h.width !== e.baseTexture.width ||
                      h.height !== e.baseTexture.height;
                  if ((i && !e.baseTexture.isPowerOfTwo) || l) {
                    (n = r.utils.getNextPowerOfTwo(h.width)),
                      (a = r.utils.getNextPowerOfTwo(h.height)),
                      (s.texture = e);
                    var u = new o(t, n, a);
                    (s.worldTransform.a = n / h.width),
                      (s.worldTransform.d = a / h.height);
                    var c = t.currentRenderTarget;
                    u.render(s, null, !0, !1),
                      t.setRenderTarget(c),
                      (this._tilingTexture = u);
                  } else
                    this._tilingTexture &&
                      this._tilingTexture.isTiling &&
                      this._tilingTexture.destroy(!0),
                      (this._tileScaleOffset.x = 1),
                      (this._tileScaleOffset.y = 1),
                      (this._tilingTexture = e);
                  (this._refreshTexture = !1),
                    (this.originalTexture = this.texture),
                    (this._texture = this._tilingTexture);
                }
              }),
              (i.prototype.hitTest = function (t) {
                this.worldTransform.applyInverse(t, a);
                var e,
                  i = this._width,
                  r = this._height,
                  n = -i * this.anchor.x;
                return a.x > n &&
                  a.x < n + i &&
                  ((e = -r * this.anchor.y), a.y > e && a.y < e + r)
                  ? !0
                  : !1;
              }),
              (i.prototype.destroy = function () {
                r.Sprite.prototype.destroy.call(this),
                  (this.tileScale = null),
                  (this._tileScaleOffset = null),
                  (this.tilePosition = null),
                  this._tilingTexture.destroy(!0),
                  (this._tilingTexture = null),
                  (this._uvs = null);
              });
          },
          {
            "../core": 20,
            "../core/textures/RenderTexture": 60,
            "../core/textures/TextureUvs": 62,
          },
        ],
        75: [
          function (t, e) {
            var i = t("../core/math"),
              r = t("../core/textures/RenderTexture"),
              n = t("../core/display/DisplayObject"),
              o = t("../core/sprites/Sprite"),
              s = new i.Matrix();
            (n.prototype._cacheAsBitmap = !1),
              (n.prototype._originalRenderWebGL = null),
              (n.prototype._originalRenderCanvas = null),
              (n.prototype._originalUpdateTransform = null),
              (n.prototype._originalHitTest = null),
              (n.prototype._cachedSprite = null),
              Object.defineProperties(n.prototype, {
                cacheAsBitmap: {
                  get: function () {
                    return this._cacheAsBitmap;
                  },
                  set: function (t) {
                    this._cacheAsBitmap !== t &&
                      ((this._cacheAsBitmap = t),
                      t
                        ? ((this._originalRenderWebGL = this.renderWebGL),
                          (this._originalRenderCanvas = this.renderCanvas),
                          (this._originalUpdateTransform =
                            this.updateTransform),
                          (this._originalGetBounds = this.getBounds),
                          (this._originalHitTest = this.hitTest),
                          (this.renderWebGL = this._renderCachedWebGL),
                          (this.renderCanvas = this._renderCachedCanvas))
                        : (this._cachedSprite &&
                            this._destroyCachedDisplayObject(),
                          (this.renderWebGL = this._originalRenderWebGL),
                          (this.renderCanvas = this._originalRenderCanvas),
                          (this.getBounds = this._originalGetBounds),
                          (this.updateTransform =
                            this._originalUpdateTransform),
                          (this.hitTest = this._originalHitTest)));
                  },
                },
              }),
              (n.prototype._renderCachedWebGL = function (t) {
                this._initCachedDisplayObject(t),
                  (this._cachedSprite.worldAlpha = this.worldAlpha),
                  t.setObjectRenderer(t.plugins.sprite),
                  t.plugins.sprite.render(this._cachedSprite);
              }),
              (n.prototype._initCachedDisplayObject = function (t) {
                if (!this._cachedSprite) {
                  t.currentRenderer.flush();
                  var e = this.getLocalBounds().clone(),
                    i = t.currentRenderTarget,
                    n = t.filterManager.filterStack,
                    a = new r(t, 0 | e.width, 0 | e.height),
                    h = s;
                  (h.tx = -e.x),
                    (h.ty = -e.y),
                    (this.renderWebGL = this._originalRenderWebGL),
                    a.render(this, h, !0),
                    t.setRenderTarget(i),
                    (t.filterManager.filterStack = n),
                    (this.renderWebGL = this._renderCachedWebGL),
                    (this.updateTransform = this.displayObjectUpdateTransform),
                    (this.getBounds = this._getCahcedBounds),
                    (this._cachedSprite = new o(a)),
                    (this._cachedSprite.worldTransform = this.worldTransform),
                    (this._cachedSprite.anchor.x = -(e.x / e.width)),
                    (this._cachedSprite.anchor.y = -(e.y / e.height)),
                    (this.hitTest = this._cachedSprite.hitTest.bind(
                      this._cachedSprite
                    ));
                }
              }),
              (n.prototype._renderCachedCanvas = function (t) {
                this._initCachedDisplayObjectCanvas(t),
                  (this._cachedSprite.worldAlpha = this.worldAlpha),
                  this._cachedSprite.renderCanvas(t);
              }),
              (n.prototype._initCachedDisplayObjectCanvas = function (t) {
                if (!this._cachedSprite) {
                  var e = this.getLocalBounds(),
                    i = t.context,
                    n = new r(t, 0 | e.width, 0 | e.height),
                    a = s;
                  (a.tx = -e.x),
                    (a.ty = -e.y),
                    (this.renderCanvas = this._originalRenderCanvas),
                    n.render(this, a, !0),
                    (t.context = i),
                    (this.renderCanvas = this._renderCachedCanvas),
                    (this.updateTransform = this.displayObjectUpdateTransform),
                    (this.getBounds = this._getCahcedBounds),
                    (this._cachedSprite = new o(n)),
                    (this._cachedSprite.worldTransform = this.worldTransform),
                    (this._cachedSprite.anchor.x = -(e.x / e.width)),
                    (this._cachedSprite.anchor.y = -(e.y / e.height)),
                    (this.hitTest = this._cachedSprite.hitTest.bind(
                      this._cachedSprite
                    ));
                }
              }),
              (n.prototype._getCahcedBounds = function () {
                return (
                  (this._cachedSprite._currentBounds = null),
                  this._cachedSprite.getBounds()
                );
              }),
              (n.prototype._destroyCachedDisplayObject = function () {
                this._cachedSprite._texture.destroy(),
                  (this._cachedSprite = null);
              }),
              (e.exports = {});
          },
          {
            "../core/display/DisplayObject": 15,
            "../core/math": 23,
            "../core/sprites/Sprite": 57,
            "../core/textures/RenderTexture": 60,
          },
        ],
        76: [
          function (t, e) {
            e.exports = {
              MovieClip: t("./MovieClip"),
              Rope: t("./Rope"),
              Strip: t("./Strip"),
              StripShader: t("./StripShader"),
              TilingSprite: t("./TilingSprite"),
              cacheAsBitmap: t("./cacheAsBitmap"),
            };
          },
          {
            "./MovieClip": 70,
            "./Rope": 71,
            "./Strip": 72,
            "./StripShader": 73,
            "./TilingSprite": 74,
            "./cacheAsBitmap": 75,
          },
        ],
        77: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nuniform vec4 dimensions;\nuniform float pixelSize;\nuniform sampler2D uSampler;\n\nfloat character(float n, vec2 p)\n{\n    p = floor(p*vec2(4.0, -4.0) + 2.5);\n    if (clamp(p.x, 0.0, 4.0) == p.x && clamp(p.y, 0.0, 4.0) == p.y)\n    {\n        if (int(mod(n/exp2(p.x + 5.0*p.y), 2.0)) == 1) return 1.0;\n    }\n    return 0.0;\n}\n\nvoid main()\n{\n    vec2 uv = gl_FragCoord.xy;\n\n    vec3 col = texture2D(uSampler, floor( uv / pixelSize ) * pixelSize / dimensions.xy).rgb;\n\n    float gray = (col.r + col.g + col.b) / 3.0;\n\n    float n =  65536.0;             // .\n    if (gray > 0.2) n = 65600.0;    // :\n    if (gray > 0.3) n = 332772.0;   // *\n    if (gray > 0.4) n = 15255086.0; // o\n    if (gray > 0.5) n = 23385164.0; // &\n    if (gray > 0.6) n = 15252014.0; // 8\n    if (gray > 0.7) n = 13199452.0; // @\n    if (gray > 0.8) n = 11512810.0; // #\n\n    vec2 p = mod( uv / ( pixelSize * 0.5 ), 2.0) - vec2(1.0);\n    col = col * character(n, p);\n\n    gl_FragColor = vec4(col, 1.0);\n}\n",
                {
                  dimensions: {
                    type: "4fv",
                    value: new Float32Array([0, 0, 0, 0]),
                  },
                  pixelSize: { type: "1f", value: 8 },
                }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                size: {
                  get: function () {
                    return this.uniforms.pixelSize.value;
                  },
                  set: function (t) {
                    this.uniforms.pixelSize.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        78: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(this),
                (this.blurXFilter = new n()),
                (this.blurYFilter = new o()),
                (this.defaultFilter = new r.AbstractFilter());
            }
            var r = t("../../core"),
              n = t("../blur/BlurXFilter"),
              o = t("../blur/BlurYFilter");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.applyFilter = function (t, e, i) {
                var n = t.filterManager.getRenderTarget(!0);
                this.defaultFilter.applyFilter(t, e, i),
                  this.blurXFilter.applyFilter(t, e, n),
                  t.blendModeManager.setBlendMode(r.CONST.BLEND_MODES.SCREEN),
                  this.blurYFilter.applyFilter(t, n, i),
                  t.blendModeManager.setBlendMode(r.CONST.BLEND_MODES.NORMAL),
                  t.filterManager.returnRenderTarget(n);
              }),
              Object.defineProperties(i.prototype, {
                blur: {
                  get: function () {
                    return this.blurXFilter.blur;
                  },
                  set: function (t) {
                    this.blurXFilter.blur = this.blurYFilter.blur = t;
                  },
                },
                blurX: {
                  get: function () {
                    return this.blurXFilter.blur;
                  },
                  set: function (t) {
                    this.blurXFilter.blur = t;
                  },
                },
                blurY: {
                  get: function () {
                    return this.blurYFilter.blur;
                  },
                  set: function (t) {
                    this.blurYFilter.blur = t;
                  },
                },
              });
          },
          {
            "../../core": 20,
            "../blur/BlurXFilter": 80,
            "../blur/BlurYFilter": 81,
          },
        ],
        79: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(this),
                (this.blurXFilter = new n()),
                (this.blurYFilter = new o());
            }
            var r = t("../../core"),
              n = t("./BlurXFilter"),
              o = t("./BlurYFilter");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.applyFilter = function (t, e, i) {
                var r = t.filterManager.getRenderTarget(!0);
                this.blurXFilter.applyFilter(t, e, r),
                  this.blurYFilter.applyFilter(t, r, i),
                  t.filterManager.returnRenderTarget(r);
              }),
              Object.defineProperties(i.prototype, {
                blur: {
                  get: function () {
                    return this.blurXFilter.blur;
                  },
                  set: function (t) {
                    this.blurXFilter.blur = this.blurYFilter.blur = t;
                  },
                },
                blurX: {
                  get: function () {
                    return this.blurXFilter.blur;
                  },
                  set: function (t) {
                    this.blurXFilter.blur = t;
                  },
                },
                blurY: {
                  get: function () {
                    return this.blurYFilter.blur;
                  },
                  set: function (t) {
                    this.blurYFilter.blur = t;
                  },
                },
              });
          },
          { "../../core": 20, "./BlurXFilter": 80, "./BlurYFilter": 81 },
        ],
        80: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision lowp float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float blur;\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n    vec4 sum = vec4(0.0);\n\n    sum += texture2D(uSampler, vec2(vTextureCoord.x - 4.0*blur, vTextureCoord.y)) * 0.05;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x - 3.0*blur, vTextureCoord.y)) * 0.09;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x - 2.0*blur, vTextureCoord.y)) * 0.12;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x - blur, vTextureCoord.y)) * 0.15;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * 0.16;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x + blur, vTextureCoord.y)) * 0.15;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x + 2.0*blur, vTextureCoord.y)) * 0.12;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x + 3.0*blur, vTextureCoord.y)) * 0.09;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x + 4.0*blur, vTextureCoord.y)) * 0.05;\n\n    gl_FragColor = sum;\n}\n",
                { blur: { type: "1f", value: 1 / 512 } }
              );
            }
            var r = t("../../core"),
              n = 1 / 7e3;
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                blur: {
                  get: function () {
                    return this.uniforms.blur.value / n;
                  },
                  set: function (t) {
                    this.uniforms.blur.value = n * t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        81: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision lowp float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float blur;\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n    vec4 sum = vec4(0.0);\n\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - 4.0*blur)) * 0.05;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - 3.0*blur)) * 0.09;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - 2.0*blur)) * 0.12;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - blur)) * 0.15;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * 0.16;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + blur)) * 0.15;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + 2.0*blur)) * 0.12;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + 3.0*blur)) * 0.09;\n    sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + 4.0*blur)) * 0.05;\n\n    gl_FragColor = sum;\n}\n",
                { blur: { type: "1f", value: 1 / 512 } }
              );
            }
            var r = t("../../core"),
              n = 1 / 7e3;
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                blur: {
                  get: function () {
                    return this.uniforms.blur.value / n;
                  },
                  set: function (t) {
                    this.uniforms.blur.value = n * t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        82: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nconst vec2 delta = vec2(1.0/10.0, 0.0);\n\nfloat random(vec3 scale, float seed)\n{\n    return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n}\n\nvoid main(void)\n{\n    vec4 color = vec4(0.0);\n    float total = 0.0;\n\n    float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n\n    for (float t = -30.0; t <= 30.0; t++)\n    {\n        float percent = (t + offset - 0.5) / 30.0;\n        float weight = 1.0 - abs(percent);\n        vec4 sample = texture2D(uSampler, vTextureCoord + delta * percent);\n        sample.rgb *= sample.a;\n        color += sample * weight;\n        total += weight;\n    }\n\n    gl_FragColor = color / total;\n    gl_FragColor.rgb /= gl_FragColor.a + 0.00001;\n}\n"
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i);
          },
          { "../../core": 20 },
        ],
        83: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform mat4 matrix;\n\nvoid main(void)\n{\n    gl_FragColor = texture2D(uSampler, vTextureCoord) * matrix;\n}\n",
                {
                  matrix: {
                    type: "mat4",
                    value: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
                  },
                }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                matrix: {
                  get: function () {
                    return this.uniforms.matrix.value;
                  },
                  set: function (t) {
                    this.uniforms.matrix.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        84: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float step;\n\nvoid main(void)\n{\n    vec4 color = texture2D(uSampler, vTextureCoord);\n\n    color = floor(color * step) / step;\n\n    gl_FragColor = color;\n}\n",
                { step: { type: "1f", value: 5 } }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                step: {
                  get: function () {
                    return this.uniforms.step.value;
                  },
                  set: function (t) {
                    this.uniforms.step.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        85: [
          function (t, e) {
            function i(t, e, i) {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying mediump vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec2 texelSize;\nuniform float matrix[9];\n\nvoid main(void)\n{\n   vec4 c11 = texture2D(uSampler, vTextureCoord - texelSize); // top left\n   vec4 c12 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - texelSize.y)); // top center\n   vec4 c13 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y - texelSize.y)); // top right\n\n   vec4 c21 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y)); // mid left\n   vec4 c22 = texture2D(uSampler, vTextureCoord); // mid center\n   vec4 c23 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y)); // mid right\n\n   vec4 c31 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y + texelSize.y)); // bottom left\n   vec4 c32 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + texelSize.y)); // bottom center\n   vec4 c33 = texture2D(uSampler, vTextureCoord + texelSize); // bottom right\n\n   gl_FragColor =\n       c11 * matrix[0] + c12 * matrix[1] + c13 * matrix[2] +\n       c21 * matrix[3] + c22 * matrix[4] + c23 * matrix[5] +\n       c31 * matrix[6] + c32 * matrix[7] + c33 * matrix[8];\n\n   gl_FragColor.a = c22.a;\n}\n",
                {
                  matrix: { type: "1fv", value: new Float32Array(t) },
                  texelSize: { type: "2v", value: { x: 1 / e, y: 1 / i } },
                }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                matrix: {
                  get: function () {
                    return this.uniforms.matrix.value;
                  },
                  set: function (t) {
                    this.uniforms.matrix.value = new Float32Array(t);
                  },
                },
                width: {
                  get: function () {
                    return 1 / this.uniforms.texelSize.value.x;
                  },
                  set: function (t) {
                    this.uniforms.texelSize.value.x = 1 / t;
                  },
                },
                height: {
                  get: function () {
                    return 1 / this.uniforms.texelSize.value.y;
                  },
                  set: function (t) {
                    this.uniforms.texelSize.value.y = 1 / t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        86: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n    float lum = length(texture2D(uSampler, vTextureCoord.xy).rgb);\n\n    gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n\n    if (lum < 1.00)\n    {\n        if (mod(gl_FragCoord.x + gl_FragCoord.y, 10.0) == 0.0)\n        {\n            gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n        }\n    }\n\n    if (lum < 0.75)\n    {\n        if (mod(gl_FragCoord.x - gl_FragCoord.y, 10.0) == 0.0)\n        {\n            gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n        }\n    }\n\n    if (lum < 0.50)\n    {\n        if (mod(gl_FragCoord.x + gl_FragCoord.y - 5.0, 10.0) == 0.0)\n        {\n            gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n        }\n    }\n\n    if (lum < 0.3)\n    {\n        if (mod(gl_FragCoord.x - gl_FragCoord.y - 5.0, 10.0) == 0.0)\n        {\n            gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n        }\n    }\n}\n"
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i);
          },
          { "../../core": 20 },
        ],
        87: [
          function (t, e) {
            function i(t) {
              var e = new r.math.Matrix();
              (t.renderable = !1),
                r.AbstractFilter.call(
                  this,
                  [
                    "attribute vec2 aVertexPosition;",
                    "attribute vec2 aTextureCoord;",
                    "attribute vec4 aColor;",
                    "uniform mat3 projectionMatrix;",
                    "uniform mat3 otherMatrix;",
                    "varying vec2 vMapCoord;",
                    "varying vec2 vTextureCoord;",
                    "varying vec4 vColor;",
                    "void main(void)",
                    "{",
                    "   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);",
                    "   vTextureCoord = aTextureCoord;",
                    "   vMapCoord = ( otherMatrix * vec3( aTextureCoord, 1.0)  ).xy;",
                    "   vColor = vec4(aColor.rgb * aColor.a, aColor.a);",
                    "}",
                  ].join("\n"),
                  [
                    "precision lowp float;",
                    "varying vec2 vMapCoord;",
                    "varying vec2 vTextureCoord;",
                    "varying vec4 vColor;",
                    "uniform vec2 scale;",
                    "uniform sampler2D uSampler;",
                    "uniform sampler2D mapSampler;",
                    "void main(void)",
                    "{",
                    "   vec4 original =  texture2D(uSampler, vTextureCoord);",
                    "   vec4 map =  texture2D(mapSampler, vMapCoord);",
                    "  map -= 0.5;",
                    "   map.xy *= scale;",
                    "   gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y));",
                    "}",
                  ].join("\n"),
                  {
                    mapSampler: { type: "sampler2D", value: t.texture },
                    otherMatrix: { type: "mat3", value: e.toArray(!0) },
                    scale: { type: "v2", value: { x: 1, y: 1 } },
                  }
                ),
                (this.maskSprite = t),
                (this.maskMatrix = e),
                (this.scale = new r.math.Point(20, 20));
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.applyFilter = function (t, e, i) {
                var r = t.filterManager;
                r.calculateMappedMatrix(
                  e.frame,
                  this.maskSprite,
                  this.maskMatrix
                ),
                  (this.uniforms.otherMatrix.value = this.maskMatrix.toArray(
                    !0
                  )),
                  (this.uniforms.scale.value.x =
                    this.scale.x * (1 / e.frame.width)),
                  (this.uniforms.scale.value.y =
                    this.scale.y * (1 / e.frame.height));
                var n = this.getShader(t);
                r.applyFilter(n, e, i);
              }),
              Object.defineProperties(i.prototype, {
                map: {
                  get: function () {
                    return this.uniforms.mapSampler.value;
                  },
                  set: function (t) {
                    this.uniforms.mapSampler.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        88: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform vec4 dimensions;\nuniform sampler2D uSampler;\n\nuniform float angle;\nuniform float scale;\n\nfloat pattern()\n{\n   float s = sin(angle), c = cos(angle);\n   vec2 tex = vTextureCoord * dimensions.xy;\n   vec2 point = vec2(\n       c * tex.x - s * tex.y,\n       s * tex.x + c * tex.y\n   ) * scale;\n   return (sin(point.x) * sin(point.y)) * 4.0;\n}\n\nvoid main()\n{\n   vec4 color = texture2D(uSampler, vTextureCoord);\n   float average = (color.r + color.g + color.b) / 3.0;\n   gl_FragColor = vec4(vec3(average * 10.0 - 5.0 + pattern()), color.a);\n}\n",
                {
                  scale: { type: "1f", value: 1 },
                  angle: { type: "1f", value: 5 },
                  dimensions: { type: "4fv", value: [0, 0, 0, 0] },
                }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                scale: {
                  get: function () {
                    return this.uniforms.scale.value;
                  },
                  set: function (t) {
                    this.uniforms.scale.value = t;
                  },
                },
                angle: {
                  get: function () {
                    return this.uniforms.angle.value;
                  },
                  set: function (t) {
                    this.uniforms.angle.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        89: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler;\nuniform float gray;\n\nvoid main(void)\n{\n   gl_FragColor = texture2D(uSampler, vTextureCoord);\n   gl_FragColor.rgb = mix(gl_FragColor.rgb, vec3(0.2126*gl_FragColor.r + 0.7152*gl_FragColor.g + 0.0722*gl_FragColor.b), gray);\n}\n",
                { gray: { type: "1f", value: 1 } }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                gray: {
                  get: function () {
                    return this.uniforms.gray.value;
                  },
                  set: function (t) {
                    this.uniforms.gray.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        90: [
          function (t, e) {
            e.exports = {
              AsciiFilter: t("./ascii/AsciiFilter"),
              BloomFilter: t("./bloom/BloomFilter"),
              BlurFilter: t("./blur/BlurFilter"),
              BlurXFilter: t("./blur/BlurXFilter"),
              BlurYFilter: t("./blur/BlurYFilter"),
              ColorMatrixFilter: t("./color/ColorMatrixFilter"),
              ColorStepFilter: t("./color/ColorStepFilter"),
              ConvolutionFilter: t("./convolution/ConvolutionFilter"),
              CrossHatchFilter: t("./crosshatch/CrossHatchFilter"),
              DisplacementFilter: t("./displacement/DisplacementFilter"),
              DotScreenFilter: t("./dot/DotScreenFilter"),
              GrayFilter: t("./gray/GrayFilter"),
              InvertFilter: t("./invert/InvertFilter"),
              NoiseFilter: t("./noise/NoiseFilter"),
              NormalMapFilter: t("./normal/NormalMapFilter"),
              PixelateFilter: t("./pixelate/PixelateFilter"),
              RGBSplitFilter: t("./rgb/RGBSplitFilter"),
              ShockwaveFilter: t("./shockwave/ShockwaveFilter"),
              SepiaFilter: t("./sepia/SepiaFilter"),
              SmartBlurFilter: t("./blur/SmartBlurFilter"),
              TiltShiftFilter: t("./tiltshift/TiltShiftFilter"),
              TiltShiftXFilter: t("./tiltshift/TiltShiftXFilter"),
              TiltShiftYFilter: t("./tiltshift/TiltShiftYFilter"),
              TwistFilter: t("./twist/TwistFilter"),
            };
          },
          {
            "./ascii/AsciiFilter": 77,
            "./bloom/BloomFilter": 78,
            "./blur/BlurFilter": 79,
            "./blur/BlurXFilter": 80,
            "./blur/BlurYFilter": 81,
            "./blur/SmartBlurFilter": 82,
            "./color/ColorMatrixFilter": 83,
            "./color/ColorStepFilter": 84,
            "./convolution/ConvolutionFilter": 85,
            "./crosshatch/CrossHatchFilter": 86,
            "./displacement/DisplacementFilter": 87,
            "./dot/DotScreenFilter": 88,
            "./gray/GrayFilter": 89,
            "./invert/InvertFilter": 91,
            "./noise/NoiseFilter": 92,
            "./normal/NormalMapFilter": 93,
            "./pixelate/PixelateFilter": 94,
            "./rgb/RGBSplitFilter": 95,
            "./sepia/SepiaFilter": 96,
            "./shockwave/ShockwaveFilter": 97,
            "./tiltshift/TiltShiftFilter": 99,
            "./tiltshift/TiltShiftXFilter": 100,
            "./tiltshift/TiltShiftYFilter": 101,
            "./twist/TwistFilter": 102,
          },
        ],
        91: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform float invert;\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n    gl_FragColor = texture2D(uSampler, vTextureCoord);\n\n    gl_FragColor.rgb = mix( (vec3(1)-gl_FragColor.rgb) * gl_FragColor.a, gl_FragColor.rgb, 1.0 - invert);\n}\n",
                { invert: { type: "1f", value: 1 } }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                invert: {
                  get: function () {
                    return this.uniforms.invert.value;
                  },
                  set: function (t) {
                    this.uniforms.invert.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        92: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float noise;\nuniform sampler2D uSampler;\n\nfloat rand(vec2 co)\n{\n    return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n    vec4 color = texture2D(uSampler, vTextureCoord);\n\n    float diff = (rand(vTextureCoord) - 0.5) * noise;\n\n    color.r += diff;\n    color.g += diff;\n    color.b += diff;\n\n    gl_FragColor = color;\n}\n",
                { noise: { type: "1f", value: 0.5 } }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                noise: {
                  get: function () {
                    return this.uniforms.noise.value;
                  },
                  set: function (t) {
                    this.uniforms.noise.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        93: [
          function (t, e) {
            function i(t) {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\nvarying float vColor;\n\nuniform sampler2D displacementMap;\nuniform sampler2D uSampler;\n\nuniform vec4 dimensions;\n\nconst vec2 Resolution = vec2(1.0,1.0);      //resolution of screen\nuniform vec3 LightPos;    //light position, normalized\nconst vec4 LightColor = vec4(1.0, 1.0, 1.0, 1.0);      //light RGBA -- alpha is intensity\nconst vec4 AmbientColor = vec4(1.0, 1.0, 1.0, 0.5);    //ambient RGBA -- alpha is intensity\nconst vec3 Falloff = vec3(0.0, 1.0, 0.2);         //attenuation coefficients\n\nuniform vec3 LightDir; // = vec3(1.0, 0.0, 1.0);\n\nuniform vec2 mapDimensions; // = vec2(256.0, 256.0);\n\n\nvoid main(void)\n{\n    vec2 mapCords = vTextureCoord.xy;\n\n    vec4 color = texture2D(uSampler, vTextureCoord.st);\n    vec3 nColor = texture2D(displacementMap, vTextureCoord.st).rgb;\n\n\n    mapCords *= vec2(dimensions.x/512.0, dimensions.y/512.0);\n\n    mapCords.y *= -1.0;\n    mapCords.y += 1.0;\n\n    // RGBA of our diffuse color\n    vec4 DiffuseColor = texture2D(uSampler, vTextureCoord);\n\n    // RGB of our normal map\n    vec3 NormalMap = texture2D(displacementMap, mapCords).rgb;\n\n    // The delta position of light\n    // vec3 LightDir = vec3(LightPos.xy - (gl_FragCoord.xy / Resolution.xy), LightPos.z);\n    vec3 LightDir = vec3(LightPos.xy - (mapCords.xy), LightPos.z);\n\n    // Correct for aspect ratio\n    // LightDir.x *= Resolution.x / Resolution.y;\n\n    // Determine distance (used for attenuation) BEFORE we normalize our LightDir\n    float D = length(LightDir);\n\n    // normalize our vectors\n    vec3 N = normalize(NormalMap * 2.0 - 1.0);\n    vec3 L = normalize(LightDir);\n\n    // Pre-multiply light color with intensity\n    // Then perform 'N dot L' to determine our diffuse term\n    vec3 Diffuse = (LightColor.rgb * LightColor.a) * max(dot(N, L), 0.0);\n\n    // pre-multiply ambient color with intensity\n    vec3 Ambient = AmbientColor.rgb * AmbientColor.a;\n\n    // calculate attenuation\n    float Attenuation = 1.0 / ( Falloff.x + (Falloff.y*D) + (Falloff.z*D*D) );\n\n    // the calculation which brings it all together\n    vec3 Intensity = Ambient + Diffuse * Attenuation;\n    vec3 FinalColor = DiffuseColor.rgb * Intensity;\n    gl_FragColor = vColor * vec4(FinalColor, DiffuseColor.a);\n\n    // gl_FragColor = vec4(1.0, 0.0, 0.0, Attenuation); // vColor * vec4(FinalColor, DiffuseColor.a);\n\n/*\n    // normalise color\n    vec3 normal = normalize(nColor * 2.0 - 1.0);\n\n    vec3 deltaPos = vec3( (light.xy - gl_FragCoord.xy) / resolution.xy, light.z );\n\n    float lambert = clamp(dot(normal, lightDir), 0.0, 1.0);\n\n    float d = sqrt(dot(deltaPos, deltaPos));\n    float att = 1.0 / ( attenuation.x + (attenuation.y*d) + (attenuation.z*d*d) );\n\n    vec3 result = (ambientColor * ambientIntensity) + (lightColor.rgb * lambert) * att;\n    result *= color.rgb;\n\n    gl_FragColor = vec4(result, 1.0);\n*/\n}\n",
                {
                  displacementMap: { type: "sampler2D", value: t },
                  scale: { type: "2f", value: { x: 15, y: 15 } },
                  offset: { type: "2f", value: { x: 0, y: 0 } },
                  mapDimensions: { type: "2f", value: { x: 1, y: 1 } },
                  dimensions: { type: "4f", value: [0, 0, 0, 0] },
                  LightPos: { type: "3f", value: [0, 1, 0] },
                }
              ),
                (t.baseTexture._powerOf2 = !0),
                t.baseTexture.hasLoaded
                  ? this.onTextureLoaded()
                  : t.baseTexture.once(
                      "loaded",
                      this.onTextureLoaded.bind(this)
                    );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.onTextureLoaded = function () {
                (this.uniforms.mapDimensions.value.x =
                  this.uniforms.displacementMap.value.width),
                  (this.uniforms.mapDimensions.value.y =
                    this.uniforms.displacementMap.value.height);
              }),
              Object.defineProperties(i.prototype, {
                map: {
                  get: function () {
                    return this.uniforms.displacementMap.value;
                  },
                  set: function (t) {
                    this.uniforms.displacementMap.value = t;
                  },
                },
                scale: {
                  get: function () {
                    return this.uniforms.scale.value;
                  },
                  set: function (t) {
                    this.uniforms.scale.value = t;
                  },
                },
                offset: {
                  get: function () {
                    return this.uniforms.offset.value;
                  },
                  set: function (t) {
                    this.uniforms.offset.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        94: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 dimensions;\nuniform vec2 pixelSize;\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n    vec2 coord = vTextureCoord;\n\n    vec2 size = dimensions.xy / pixelSize;\n\n    vec2 color = floor( ( vTextureCoord * size ) ) / size + pixelSize/dimensions.xy * 0.5;\n\n    gl_FragColor = texture2D(uSampler, color);\n}\n",
                {
                  dimensions: {
                    type: "4fv",
                    value: new Float32Array([0, 0, 0, 0]),
                  },
                  pixelSize: { type: "v2", value: { x: 10, y: 10 } },
                }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                size: {
                  get: function () {
                    return this.uniforms.pixelSize.value;
                  },
                  set: function (t) {
                    this.uniforms.pixelSize.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        95: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 dimensions;\nuniform vec2 red;\nuniform vec2 green;\nuniform vec2 blue;\n\nvoid main(void)\n{\n   gl_FragColor.r = texture2D(uSampler, vTextureCoord + red/dimensions.xy).r;\n   gl_FragColor.g = texture2D(uSampler, vTextureCoord + green/dimensions.xy).g;\n   gl_FragColor.b = texture2D(uSampler, vTextureCoord + blue/dimensions.xy).b;\n   gl_FragColor.a = texture2D(uSampler, vTextureCoord).a;\n}\n",
                {
                  red: { type: "v2", value: { x: 20, y: 20 } },
                  green: { type: "v2", value: { x: -20, y: 20 } },
                  blue: { type: "v2", value: { x: 20, y: -20 } },
                  dimensions: { type: "4fv", value: [0, 0, 0, 0] },
                }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                red: {
                  get: function () {
                    return this.uniforms.red.value;
                  },
                  set: function (t) {
                    this.uniforms.red.value = t;
                  },
                },
                green: {
                  get: function () {
                    return this.uniforms.green.value;
                  },
                  set: function (t) {
                    this.uniforms.green.value = t;
                  },
                },
                blue: {
                  get: function () {
                    return this.uniforms.blue.value;
                  },
                  set: function (t) {
                    this.uniforms.blue.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        96: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float sepia;\n\nconst mat3 sepiaMatrix = mat3(0.3588, 0.7044, 0.1368, 0.2990, 0.5870, 0.1140, 0.2392, 0.4696, 0.0912);\n\nvoid main(void)\n{\n   gl_FragColor = texture2D(uSampler, vTextureCoord);\n   gl_FragColor.rgb = mix( gl_FragColor.rgb, gl_FragColor.rgb * sepiaMatrix, sepia);\n}\n",
                { sepia: { type: "1f", value: 1 } }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                sepia: {
                  get: function () {
                    return this.uniforms.sepia.value;
                  },
                  set: function (t) {
                    this.uniforms.sepia.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        97: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision lowp float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nuniform vec2 center;\nuniform vec3 params; // 10.0, 0.8, 0.1\nuniform float time;\n\nvoid main()\n{\n    vec2 uv = vTextureCoord;\n    vec2 texCoord = uv;\n\n    float dist = distance(uv, center);\n\n    if ( (dist <= (time + params.z)) && (dist >= (time - params.z)) )\n    {\n        float diff = (dist - time);\n        float powDiff = 1.0 - pow(abs(diff*params.x), params.y);\n\n        float diffTime = diff  * powDiff;\n        vec2 diffUV = normalize(uv - center);\n        texCoord = uv + (diffUV * diffTime);\n    }\n\n    gl_FragColor = texture2D(uSampler, texCoord);\n}\n",
                {
                  center: { type: "v2", value: { x: 0.5, y: 0.5 } },
                  params: { type: "v3", value: { x: 10, y: 0.8, z: 0.1 } },
                  time: { type: "1f", value: 0 },
                }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                center: {
                  get: function () {
                    return this.uniforms.center.value;
                  },
                  set: function (t) {
                    this.uniforms.center.value = t;
                  },
                },
                params: {
                  get: function () {
                    return this.uniforms.params.value;
                  },
                  set: function (t) {
                    this.uniforms.params.value = t;
                  },
                },
                time: {
                  get: function () {
                    return this.uniforms.time.value;
                  },
                  set: function (t) {
                    this.uniforms.time.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        98: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float blur;\nuniform float gradientBlur;\nuniform vec2 start;\nuniform vec2 end;\nuniform vec2 delta;\nuniform vec2 texSize;\n\nfloat random(vec3 scale, float seed)\n{\n    return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n}\n\nvoid main(void)\n{\n    vec4 color = vec4(0.0);\n    float total = 0.0;\n\n    float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n    vec2 normal = normalize(vec2(start.y - end.y, end.x - start.x));\n    float radius = smoothstep(0.0, 1.0, abs(dot(vTextureCoord * texSize - start, normal)) / gradientBlur) * blur;\n\n    for (float t = -30.0; t <= 30.0; t++)\n    {\n        float percent = (t + offset - 0.5) / 30.0;\n        float weight = 1.0 - abs(percent);\n        vec4 sample = texture2D(uSampler, vTextureCoord + delta / texSize * percent * radius);\n        sample.rgb *= sample.a;\n        color += sample * weight;\n        total += weight;\n    }\n\n    gl_FragColor = color / total;\n    gl_FragColor.rgb /= gl_FragColor.a + 0.00001;\n}\n",
                {
                  blur: { type: "1f", value: 100 },
                  gradientBlur: { type: "1f", value: 600 },
                  start: {
                    type: "v2",
                    value: { x: 0, y: window.innerHeight / 2 },
                  },
                  end: {
                    type: "v2",
                    value: { x: 600, y: window.innerHeight / 2 },
                  },
                  delta: { type: "v2", value: { x: 30, y: 30 } },
                  texSize: {
                    type: "v2",
                    value: { x: window.innerWidth, y: window.innerHeight },
                  },
                }
              ),
                this.updateDelta();
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.updateDelta = function () {
                (this.uniforms.delta.value.x = 0),
                  (this.uniforms.delta.value.y = 0);
              }),
              Object.defineProperties(i.prototype, {
                blur: {
                  get: function () {
                    return this.uniforms.blur.value;
                  },
                  set: function (t) {
                    this.uniforms.blur.value = t;
                  },
                },
                gradientBlur: {
                  get: function () {
                    return this.uniforms.gradientBlur.value;
                  },
                  set: function (t) {
                    this.uniforms.gradientBlur.value = t;
                  },
                },
                start: {
                  get: function () {
                    return this.uniforms.start.value;
                  },
                  set: function (t) {
                    (this.uniforms.start.value = t), this.updateDelta();
                  },
                },
                end: {
                  get: function () {
                    return this.uniforms.end.value;
                  },
                  set: function (t) {
                    (this.uniforms.end.value = t), this.updateDelta();
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        99: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(this),
                (this.tiltShiftXFilter = new n()),
                (this.tiltShiftYFilter = new o());
            }
            var r = t("../../core"),
              n = t("./TiltShiftXFilter"),
              o = t("./TiltShiftYFilter");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.applyFilter = function (t, e, i) {
                var r = t.filterManager.getRenderTarget(!0);
                this.tiltShiftXFilter.applyFilter(t, e, r),
                  this.tiltShiftYFilter.applyFilter(t, r, i),
                  t.filterManager.returnRenderTarget(r);
              }),
              Object.defineProperties(i.prototype, {
                blur: {
                  get: function () {
                    return this.tiltShiftXFilter.blur;
                  },
                  set: function (t) {
                    this.tiltShiftXFilter.blur = this.tiltShiftYFilter.blur = t;
                  },
                },
                gradientBlur: {
                  get: function () {
                    return this.tiltShiftXFilter.gradientBlur;
                  },
                  set: function (t) {
                    this.tiltShiftXFilter.gradientBlur =
                      this.tiltShiftYFilter.gradientBlur = t;
                  },
                },
                start: {
                  get: function () {
                    return this.tiltShiftXFilter.start;
                  },
                  set: function (t) {
                    this.tiltShiftXFilter.start = this.tiltShiftYFilter.start =
                      t;
                  },
                },
                end: {
                  get: function () {
                    return this.tiltShiftXFilter.end;
                  },
                  set: function (t) {
                    this.tiltShiftXFilter.end = this.tiltShiftYFilter.end = t;
                  },
                },
              });
          },
          {
            "../../core": 20,
            "./TiltShiftXFilter": 100,
            "./TiltShiftYFilter": 101,
          },
        ],
        100: [
          function (t, e) {
            function i() {
              r.call(this);
            }
            var r = t("./TiltShiftAxisFilter");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.updateDelta = function () {
                var t = this.uniforms.end.value.x - this.uniforms.start.value.x,
                  e = this.uniforms.end.value.y - this.uniforms.start.value.y,
                  i = Math.sqrt(t * t + e * e);
                (this.uniforms.delta.value.x = t / i),
                  (this.uniforms.delta.value.y = e / i);
              });
          },
          { "./TiltShiftAxisFilter": 98 },
        ],
        101: [
          function (t, e) {
            function i() {
              r.call(this);
            }
            var r = t("./TiltShiftAxisFilter");
            (i.prototype = Object.create(r.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.updateDelta = function () {
                var t = this.uniforms.end.value.x - this.uniforms.start.value.x,
                  e = this.uniforms.end.value.y - this.uniforms.start.value.y,
                  i = Math.sqrt(t * t + e * e);
                (this.uniforms.delta.value.x = -e / i),
                  (this.uniforms.delta.value.y = t / i);
              });
          },
          { "./TiltShiftAxisFilter": 98 },
        ],
        102: [
          function (t, e) {
            function i() {
              r.AbstractFilter.call(
                this,
                null,
                "precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float radius;\nuniform float angle;\nuniform vec2 offset;\n\nvoid main(void)\n{\n   vec2 coord = vTextureCoord - offset;\n   float dist = length(coord);\n\n   if (dist < radius)\n   {\n       float ratio = (radius - dist) / radius;\n       float angleMod = ratio * ratio * angle;\n       float s = sin(angleMod);\n       float c = cos(angleMod);\n       coord = vec2(coord.x * c - coord.y * s, coord.x * s + coord.y * c);\n   }\n\n   gl_FragColor = texture2D(uSampler, coord+offset);\n}\n",
                {
                  radius: { type: "1f", value: 0.5 },
                  angle: { type: "1f", value: 5 },
                  offset: { type: "v2", value: { x: 0.5, y: 0.5 } },
                }
              );
            }
            var r = t("../../core");
            (i.prototype = Object.create(r.AbstractFilter.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                offset: {
                  get: function () {
                    return this.uniforms.offset.value;
                  },
                  set: function (t) {
                    this.uniforms.offset.value = t;
                  },
                },
                radius: {
                  get: function () {
                    return this.uniforms.radius.value;
                  },
                  set: function (t) {
                    this.uniforms.radius.value = t;
                  },
                },
                angle: {
                  get: function () {
                    return this.uniforms.angle.value;
                  },
                  set: function (t) {
                    this.uniforms.angle.value = t;
                  },
                },
              });
          },
          { "../../core": 20 },
        ],
        103: [
          function (t, e) {
            function i() {
              (this.global = new r.math.Point()),
                (this.target = null),
                (this.originalEvent = null);
            }
            var r = t("../core");
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.getLocalPosition = function (t, e) {
                var i = t.worldTransform,
                  n = this.global,
                  o = i.a,
                  s = i.c,
                  a = i.tx,
                  h = i.b,
                  l = i.d,
                  u = i.ty,
                  c = 1 / (o * l + s * -h);
                return (
                  (e = e || new r.math.Point()),
                  (e.x = l * c * n.x + -s * c * n.y + (u * s - a * l) * c),
                  (e.y = o * c * n.y + -h * c * n.x + (-u * o + a * h) * c),
                  e
                );
              });
          },
          { "../core": 20 },
        ],
        104: [
          function (t, e) {
            function i(t) {
              (this.renderer = t),
                (this.mouse = new n()),
                (this.eventData = new r.utils.EventData()),
                (this.eventData.data = this.mouse),
                (this.interactiveDataPool = []),
                (this.interactionDOMElement = null),
                (this.eventsAdded = !1),
                (this.onMouseUp = this.onMouseUp.bind(this)),
                (this.processMouseUp = this.processMouseUp.bind(this)),
                (this.onMouseDown = this.onMouseDown.bind(this)),
                (this.processMouseDown = this.processMouseDown.bind(this)),
                (this.onMouseMove = this.onMouseMove.bind(this)),
                (this.processMouseMove = this.processMouseMove.bind(this)),
                (this.onMouseOut = this.onMouseOut.bind(this)),
                (this.processMouseOverOut =
                  this.processMouseOverOut.bind(this)),
                (this.onTouchStart = this.onTouchStart.bind(this)),
                (this.processTouchStart = this.processTouchStart.bind(this)),
                (this.onTouchEnd = this.onTouchEnd.bind(this)),
                (this.processTouchEnd = this.processTouchEnd.bind(this)),
                (this.onTouchMove = this.onTouchMove.bind(this)),
                (this.processTouchMove = this.processTouchMove.bind(this)),
                (this.last = 0),
                (this.currentCursorStyle = "inherit"),
                (this._tempPoint = new r.math.Point()),
                (this.resolution = 1),
                this.setTargetElement(
                  this.renderer.view,
                  this.renderer.resolution
                ),
                this.update();
            }
            var r = t("../core"),
              n = t("./InteractionData"),
              o = 10,
              s = !0;
            (i.prototype.constructor = i),
              (e.exports = i),
              (i.prototype.setTargetElement = function (t, e) {
                this.removeEvents(),
                  (this.interactionDOMElement = t),
                  (this.resolution = e || 1),
                  this.addEvents();
              }),
              (i.prototype.addEvents = function () {
                this.interactionDOMElement &&
                  (window.navigator.msPointerEnabled &&
                    ((this.interactionDOMElement.style["-ms-content-zooming"] =
                      "none"),
                    (this.interactionDOMElement.style["-ms-touch-action"] =
                      "none")),
                  this.interactionDOMElement.addEventListener(
                    "mousemove",
                    this.onMouseMove,
                    !0
                  ),
                  this.interactionDOMElement.addEventListener(
                    "mousedown",
                    this.onMouseDown,
                    !0
                  ),
                  this.interactionDOMElement.addEventListener(
                    "mouseout",
                    this.onMouseOut,
                    !0
                  ),
                  this.interactionDOMElement.addEventListener(
                    "touchstart",
                    this.onTouchStart,
                    !0
                  ),
                  this.interactionDOMElement.addEventListener(
                    "touchend",
                    this.onTouchEnd,
                    !0
                  ),
                  this.interactionDOMElement.addEventListener(
                    "touchmove",
                    this.onTouchMove,
                    !0
                  ),
                  window.addEventListener("mouseup", this.onMouseUp, !0),
                  (this.eventsAdded = !0));
              }),
              (i.prototype.removeEvents = function () {
                this.interactionDOMElement &&
                  (window.navigator.msPointerEnabled &&
                    ((this.interactionDOMElement.style["-ms-content-zooming"] =
                      ""),
                    (this.interactionDOMElement.style["-ms-touch-action"] =
                      "")),
                  this.interactionDOMElement.removeEventListener(
                    "mousemove",
                    this.onMouseMove,
                    !0
                  ),
                  this.interactionDOMElement.removeEventListener(
                    "mousedown",
                    this.onMouseDown,
                    !0
                  ),
                  this.interactionDOMElement.removeEventListener(
                    "mouseout",
                    this.onMouseOut,
                    !0
                  ),
                  this.interactionDOMElement.removeEventListener(
                    "touchstart",
                    this.onTouchStart,
                    !0
                  ),
                  this.interactionDOMElement.removeEventListener(
                    "touchend",
                    this.onTouchEnd,
                    !0
                  ),
                  this.interactionDOMElement.removeEventListener(
                    "touchmove",
                    this.onTouchMove,
                    !0
                  ),
                  (this.interactionDOMElement = null),
                  window.removeEventListener("mouseup", this.onMouseUp, !0),
                  (this.eventsAdded = !1));
              }),
              (i.prototype.update = function () {
                if (
                  (requestAnimationFrame(this.update.bind(this)),
                  !this.throttleUpdate() && this.interactionDOMElement)
                ) {
                  if (this.didMove) return void (this.didMove = !1);
                  (this.cursor = "inherit"),
                    this.processInteractive(
                      this.mouse.global,
                      this.renderer._lastObjectRendered,
                      this.processMouseOverOut.bind(this),
                      !0
                    ),
                    this.currentCursorStyle !== this.cursor &&
                      ((this.currentCursorStyle = this.cursor),
                      (this.interactionDOMElement.style.cursor = this.cursor));
                }
              }),
              (i.prototype.dispatchEvent = function (t, e, i) {
                i.stopped ||
                  ((i.target = t), (i.type = e), t.emit(e, i), t[e] && t[e](i));
              }),
              (i.prototype.throttleUpdate = function () {
                var t = Date.now(),
                  e = t - this.last;
                return (e = (e * o) / 1e3), 1 > e ? !0 : ((this.last = t), !1);
              }),
              (i.prototype.mapPositionToPoint = function (t, e, i) {
                var r = this.interactionDOMElement.getBoundingClientRect();
                (t.x =
                  ((e - r.left) *
                    (this.interactionDOMElement.width / r.width)) /
                  this.resolution),
                  (t.y =
                    ((i - r.top) *
                      (this.interactionDOMElement.height / r.height)) /
                    this.resolution);
              }),
              (i.prototype.processInteractive = function (t, e, i, r, n) {
                if (!e.visible) return !1;
                var o = e.children,
                  s = !1;
                if (((n = n || e.interactive), e.interactiveChildren))
                  for (var a = o.length - 1; a >= 0; a--)
                    !s && r
                      ? (s = this.processInteractive(t, o[a], i, !0, n))
                      : this.processInteractive(t, o[a], i, !1, !1);
                return (
                  n &&
                    (r &&
                      (e.hitArea
                        ? (e.worldTransform.applyInverse(t, this._tempPoint),
                          (s = e.hitArea.contains(
                            this._tempPoint.x,
                            this._tempPoint.y
                          )))
                        : e.hitTest && (s = e.hitTest(t))),
                    e.interactive && i(e, s)),
                  s
                );
              }),
              (i.prototype.onMouseDown = function (t) {
                (this.mouse.originalEvent = t),
                  (this.eventData.data = this.mouse),
                  (this.eventData.stopped = !1),
                  s && this.mouse.originalEvent.preventDefault(),
                  this.processInteractive(
                    this.mouse.global,
                    this.renderer._lastObjectRendered,
                    this.processMouseDown,
                    !0
                  );
              }),
              (i.prototype.processMouseDown = function (t, e) {
                var i = this.mouse.originalEvent,
                  r = 2 === i.button || 3 === i.which;
                e &&
                  ((t[r ? "_isRightDown" : "_isLeftDown"] = !0),
                  this.dispatchEvent(
                    t,
                    r ? "rightdown" : "mousedown",
                    this.eventData
                  ));
              }),
              (i.prototype.onMouseUp = function (t) {
                (this.mouse.originalEvent = t),
                  (this.eventData.data = this.mouse),
                  (this.eventData.stopped = !1),
                  this.processInteractive(
                    this.mouse.global,
                    this.renderer._lastObjectRendered,
                    this.processMouseUp,
                    !0
                  );
              }),
              (i.prototype.processMouseUp = function (t, e) {
                var i = this.mouse.originalEvent,
                  r = 2 === i.button || 3 === i.which,
                  n = r ? "_isRightDown" : "_isLeftDown";
                e
                  ? (this.dispatchEvent(
                      t,
                      r ? "rightup" : "mouseup",
                      this.eventData
                    ),
                    t[n] &&
                      ((t[n] = !1),
                      this.dispatchEvent(
                        t,
                        r ? "rightclick" : "click",
                        this.eventData
                      )))
                  : t[n] &&
                    ((t[n] = !1),
                    this.dispatchEvent(
                      t,
                      r ? "rightupoutside" : "mouseupoutside",
                      this.eventData
                    ));
              }),
              (i.prototype.onMouseMove = function (t) {
                (this.mouse.originalEvent = t),
                  (this.eventData.data = this.mouse),
                  (this.eventData.stopped = !1),
                  this.mapPositionToPoint(
                    this.mouse.global,
                    t.clientX,
                    t.clientY
                  ),
                  (this.didMove = !0),
                  (this.cursor = "inherit"),
                  this.processInteractive(
                    this.mouse.global,
                    this.renderer._lastObjectRendered,
                    this.processMouseMove,
                    !0
                  ),
                  this.currentCursorStyle !== this.cursor &&
                    ((this.currentCursorStyle = this.cursor),
                    (this.interactionDOMElement.style.cursor = this.cursor));
              }),
              (i.prototype.processMouseMove = function (t, e) {
                this.dispatchEvent(t, "mousemove", this.eventData),
                  this.processMouseOverOut(t, e);
              }),
              (i.prototype.onMouseOut = function (t) {
                (this.mouse.originalEvent = t),
                  (this.eventData.stopped = !1),
                  (this.interactionDOMElement.style.cursor = "inherit"),
                  this.mapPositionToPoint(
                    this.mouse.global,
                    t.clientX,
                    t.clientY
                  ),
                  this.processInteractive(
                    this.mouse.global,
                    this.renderer._lastObjectRendered,
                    this.processMouseOverOut,
                    !1
                  );
              }),
              (i.prototype.processMouseOverOut = function (t, e) {
                e
                  ? (t._over ||
                      ((t._over = !0),
                      this.dispatchEvent(t, "mouseover", this.eventData)),
                    t.buttonMode && (this.cursor = t.defaultCursor))
                  : t._over &&
                    ((t._over = !1),
                    this.dispatchEvent(t, "mouseout", this.eventData));
              }),
              (i.prototype.onTouchStart = function (t) {
                s && t.preventDefault();
                for (var e = t.changedTouches, i = 0; i < e.length; i++) {
                  var r = e[i],
                    n = this.getTouchData(r);
                  (n.originalEvent = t),
                    (this.eventData.data = n),
                    (this.eventData.stopped = !1),
                    this.processInteractive(
                      n.global,
                      this.renderer._lastObjectRendered,
                      this.processTouchStart,
                      !0
                    ),
                    this.returnTouchData(n);
                }
              }),
              (i.prototype.processTouchStart = function (t, e) {
                e &&
                  ((t._touchDown = !0),
                  this.dispatchEvent(t, "touchstart", this.eventData));
              }),
              (i.prototype.onTouchEnd = function (t) {
                s && t.preventDefault();
                for (var e = t.changedTouches, i = 0; i < e.length; i++) {
                  var r = e[i],
                    n = this.getTouchData(r);
                  (n.originalEvent = t),
                    (this.eventData.data = n),
                    (this.eventData.stopped = !1),
                    this.processInteractive(
                      n.global,
                      this.renderer._lastObjectRendered,
                      this.processTouchEnd,
                      !0
                    ),
                    this.returnTouchData(n);
                }
              }),
              (i.prototype.processTouchEnd = function (t, e) {
                e
                  ? (this.dispatchEvent(t, "touchend", this.eventData),
                    t._touchDown &&
                      ((t._touchDown = !1),
                      this.dispatchEvent(t, "tap", this.eventData)))
                  : t._touchDown &&
                    ((t._touchDown = !1),
                    this.dispatchEvent(t, "touchendoutside", this.eventData));
              }),
              (i.prototype.onTouchMove = function (t) {
                s && t.preventDefault();
                for (var e = t.changedTouches, i = 0; i < e.length; i++) {
                  var r = e[i],
                    n = this.getTouchData(r);
                  (n.originalEvent = t),
                    (this.eventData.data = n),
                    (this.eventData.stopped = !1),
                    this.processInteractive(
                      n.global,
                      this.renderer._lastObjectRendered,
                      this.processTouchMove,
                      !1
                    ),
                    this.returnTouchData(n);
                }
              }),
              (i.prototype.processTouchMove = function (t, e) {
                (e = e), this.dispatchEvent(t, "touchmove", this.eventData);
              }),
              (i.prototype.getTouchData = function (t) {
                var e = this.interactiveDataPool.pop();
                return (
                  e || (e = new n()),
                  (e.identifier = t.identifier),
                  this.mapPositionToPoint(e.global, t.clientX, t.clientY),
                  e
                );
              }),
              (i.prototype.returnTouchData = function (t) {
                this.interactiveDataPool.push(t);
              }),
              r.WebGLRenderer.registerPlugin("interaction", i),
              r.CanvasRenderer.registerPlugin("interaction", i);
          },
          { "../core": 20, "./InteractionData": 103 },
        ],
        105: [
          function (t, e) {
            e.exports = {
              InteractionData: t("./InteractionData"),
              InteractionManager: t("./InteractionManager"),
              interactiveTarget: t("./interactiveTarget"),
            };
          },
          {
            "./InteractionData": 103,
            "./InteractionManager": 104,
            "./interactiveTarget": 106,
          },
        ],
        106: [
          function (t, e) {
            var i = t("../core"),
              r = new i.math.Point();
            (i.DisplayObject.prototype.interactive = !1),
              (i.DisplayObject.prototype.buttonMode = !1),
              (i.DisplayObject.prototype.interactiveChildren = !0),
              (i.DisplayObject.prototype.defaultCursor = "pointer"),
              (i.DisplayObject.prototype._over = !1),
              (i.DisplayObject.prototype._touchDown = !1),
              (i.Sprite.prototype.hitTest = function (t) {
                this.worldTransform.applyInverse(t, r);
                var e,
                  i = this._texture._frame.width,
                  n = this._texture._frame.height,
                  o = -i * this.anchor.x;
                return r.x > o &&
                  r.x < o + i &&
                  ((e = -n * this.anchor.y), r.y > e && r.y < e + n)
                  ? !0
                  : !1;
              }),
              (i.Graphics.prototype.hitTest = function (t) {
                this.worldTransform.applyInverse(t, r);
                for (var e = this.graphicsData, i = 0; i < e.length; i++) {
                  var n = e[i];
                  if (n.fill && n.shape && n.shape.contains(r.x, r.y))
                    return !0;
                }
                return !1;
              }),
              (e.exports = {});
          },
          { "../core": 20 },
        ],
        107: [
          function (t, e) {
            var i = t("resource-loader"),
              r = t("./textureParser"),
              n = t("./spritesheetParser"),
              o = t("./spineAtlasParser"),
              s = t("./bitmapFontParser"),
              a = function () {
                i.call(this),
                  this.use(i.middleware.parsing.json())
                    .use(i.middleware.parsing.blob())
                    .use(r())
                    .use(n())
                    .use(o())
                    .use(s());
              };
            (a.prototype = Object.create(i.prototype)),
              (a.prototype.constructor = a),
              (e.exports = a);
          },
          {
            "./bitmapFontParser": 108,
            "./spineAtlasParser": 110,
            "./spritesheetParser": 111,
            "./textureParser": 112,
            "resource-loader": 8,
          },
        ],
        108: [
          function (t, e) {
            var i = t("resource-loader").Resource,
              r = t("../core");
            e.exports = function () {
              return function (t, e) {
                if (!t.data || navigator.isCocoonJS)
                  if (window.DOMParser) {
                    var n = new DOMParser();
                    t.data = n.parseFromString(
                      this.xhr.responseText,
                      "text/xml"
                    );
                  } else {
                    var o = document.createElement("div");
                    (o.innerHTML = this.xhr.responseText), (t.data = o);
                  }
                var s = t.data.nodeName;
                if (
                  !t.data ||
                  !s ||
                  "#document" !== s.toLowerCase() ||
                  "div" !== s.toLowerCase()
                )
                  return e();
                var a =
                    this.baseUrl +
                    t.data.getElementsByTagName("page")[0].getAttribute("file"),
                  h = {
                    crossOrigin: t.crossOrigin,
                    loadType: i.LOAD_TYPE.IMAGE,
                  };
                this.add(t.name + "_image", a, h, function (i) {
                  var n = {},
                    o = t.data.getElementsByTagName("info")[0],
                    s = t.data.getElementsByTagName("common")[0];
                  (n.font = o.getAttribute("face")),
                    (n.size = parseInt(o.getAttribute("size"), 10)),
                    (n.lineHeight = parseInt(s.getAttribute("lineHeight"), 10)),
                    (n.chars = {});
                  for (
                    var a = t.data.getElementsByTagName("char"), h = 0;
                    h < a.length;
                    h++
                  ) {
                    var l = parseInt(a[h].getAttribute("id"), 10),
                      u = new r.math.Rectangle(
                        parseInt(a[h].getAttribute("x"), 10),
                        parseInt(a[h].getAttribute("y"), 10),
                        parseInt(a[h].getAttribute("width"), 10),
                        parseInt(a[h].getAttribute("height"), 10)
                      );
                    n.chars[l] = {
                      xOffset: parseInt(a[h].getAttribute("xoffset"), 10),
                      yOffset: parseInt(a[h].getAttribute("yoffset"), 10),
                      xAdvance: parseInt(a[h].getAttribute("xadvance"), 10),
                      kerning: {},
                      texture: (r.utils.TextureCache[l] = new r.Texture(
                        i.texture.baseTexture,
                        u
                      )),
                    };
                  }
                  var c = t.data.getElementsByTagName("kerning");
                  for (h = 0; h < c.length; h++) {
                    var d = parseInt(c[h].getAttribute("first"), 10),
                      p = parseInt(c[h].getAttribute("second"), 10),
                      f = parseInt(c[h].getAttribute("amount"), 10);
                    n.chars[p].kerning[d] = f;
                  }
                  (t.bitmapFont = n), e();
                });
              };
            };
          },
          { "../core": 20, "resource-loader": 8 },
        ],
        109: [
          function (t, e) {
            e.exports = {
              Loader: t("./Loader"),
              bitmapFontParser: t("./bitmapFontParser"),
              spineAtlasParser: t("./spineAtlasParser"),
              spritesheetParser: t("./spritesheetParser"),
              textureParser: t("./textureParser"),
            };
          },
          {
            "./Loader": 107,
            "./bitmapFontParser": 108,
            "./spineAtlasParser": 110,
            "./spritesheetParser": 111,
            "./textureParser": 112,
          },
        ],
        110: [
          function (t, e) {
            var i = t("resource-loader").Resource,
              r = t("async"),
              n = t("../spine");
            e.exports = function () {
              return function (t, e) {
                if (t.data && t.data.bones) {
                  var o = t.url.substr(0, t.url.lastIndexOf(".")) + ".atlas",
                    s = {
                      crossOrigin: t.crossOrigin,
                      xhrType: i.XHR_RESPONSE_TYPE.TEXT,
                    };
                  this.add(t.name + "_atlas", o, s, function (i) {
                    var o = new n.Atlas(
                        this.ajaxRequest.responseText,
                        this.baseUrl,
                        i.crossOrigin
                      ),
                      s = new n.SkeletonJsonParser(
                        new n.AtlasAttachmentParser(o)
                      ),
                      a = s.readSkeletonData(t.data);
                    (t.spine = a),
                      (t.spineAtlas = o),
                      r.each(
                        o.pages,
                        function (t, e) {
                          t.rendererObject.hasLoaded
                            ? e()
                            : t.rendererObject.once("loaded", e);
                        },
                        e
                      );
                  });
                } else e();
              };
            };
          },
          { "../spine": 115, async: 2, "resource-loader": 8 },
        ],
        111: [
          function (t, e) {
            var i = t("resource-loader").Resource,
              r = t("path"),
              n = t("../core");
            e.exports = function () {
              return function (t, e) {
                if (t.data && t.data.frames) {
                  var o = {
                      crossOrigin: t.crossOrigin,
                      loadType: i.LOAD_TYPE.IMAGE,
                    },
                    s = r.dirname(t.url.replace(this.baseUrl, "")),
                    a = n.utils.getResolutionOfUrl(t.url);
                  this.add(
                    t.name + "_image",
                    this.baseUrl + s + "/" + t.data.meta.image,
                    o,
                    function (i) {
                      t.textures = {};
                      var r = t.data.frames;
                      for (var o in r) {
                        var s = r[o].frame;
                        if (s) {
                          var h = null,
                            l = null;
                          if (
                            ((h = r[o].rotated
                              ? new n.math.Rectangle(s.x, s.y, s.h, s.w)
                              : new n.math.Rectangle(s.x, s.y, s.w, s.h)),
                            r[o].trimmed &&
                              (l = new n.math.Rectangle(
                                r[o].spriteSourceSize.x / a,
                                r[o].spriteSourceSize.y / a,
                                r[o].sourceSize.w / a,
                                r[o].sourceSize.h / a
                              )),
                            r[o].rotated)
                          ) {
                            var u = h.width;
                            (h.width = h.height), (h.height = u);
                          }
                          (h.x /= a),
                            (h.y /= a),
                            (h.width /= a),
                            (h.height /= a),
                            (t.textures[o] = new n.Texture(
                              i.texture.baseTexture,
                              h,
                              h.clone(),
                              l,
                              r[o].rotated
                            )),
                            (n.utils.TextureCache[o] = t.textures[o]);
                        }
                      }
                      e();
                    }
                  );
                } else e();
              };
            };
          },
          { "../core": 20, path: 3, "resource-loader": 8 },
        ],
        112: [
          function (t, e) {
            var i = t("../core");
            e.exports = function () {
              return function (t, e) {
                t.data &&
                  t.data.nodeName &&
                  "img" === t.data.nodeName.toLowerCase() &&
                  ((t.texture = new i.Texture(
                    new i.BaseTexture(
                      t.data,
                      null,
                      i.utils.getResolutionOfUrl(t.url)
                    )
                  )),
                  (i.utils.TextureCache[t.url] = t.texture)),
                  e();
              };
            };
          },
          { "../core": 20 },
        ],
        113: [
          function (t, e) {
            function i(t) {
              if ((r.Container.call(this), !t))
                throw new Error("The spineData param is required.");
              (this.spineData = t),
                (this.skeleton = new n.Skeleton(t)),
                this.skeleton.updateWorldTransform(),
                (this.stateData = new n.AnimationStateData(t)),
                (this.state = new n.AnimationState(this.stateData)),
                (this.slotContainers = []);
              for (var e = 0, i = this.skeleton.drawOrder.length; i > e; e++) {
                var o = this.skeleton.drawOrder[e],
                  s = o.attachment,
                  a = new r.Container();
                if (
                  (this.slotContainers.push(a),
                  this.addChild(a),
                  s instanceof n.RegionAttachment)
                ) {
                  var h = s.rendererObject.name,
                    l = this.createSprite(o, s);
                  (o.currentSprite = l),
                    (o.currentSpriteName = h),
                    a.addChild(l);
                } else {
                  if (!(s instanceof n.MeshAttachment)) continue;
                  var u = this.createMesh(o, s);
                  (o.currentMesh = u),
                    (o.currentMeshName = s.name),
                    a.addChild(u);
                }
              }
              this.autoUpdate = !0;
            }
            var r = t("../core"),
              n = t("./SpineRuntime");
            (n.Bone.yDown = !0),
              (i.prototype = Object.create(r.Container.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                autoUpdate: {
                  get: function () {
                    return (
                      this.updateTransform === i.prototype.autoUpdateTransform
                    );
                  },
                  set: function (t) {
                    this.updateTransform = t
                      ? i.prototype.autoUpdateTransform
                      : r.Container.prototype.updateTransform;
                  },
                },
              }),
              (i.prototype.update = function (t) {
                this.state.update(t),
                  this.state.apply(this.skeleton),
                  this.skeleton.updateWorldTransform();
                for (
                  var e = this.skeleton.drawOrder, i = 0, o = e.length;
                  o > i;
                  i++
                ) {
                  var s = e[i],
                    a = s.attachment,
                    h = this.slotContainers[i];
                  if (a) {
                    var l = a.type;
                    if (l === n.AttachmentType.region) {
                      if (
                        a.rendererObject &&
                        (!s.currentSpriteName ||
                          s.currentSpriteName !== a.rendererObject.name)
                      ) {
                        var u = a.rendererObject.name;
                        if (
                          (void 0 !== s.currentSprite &&
                            (s.currentSprite.visible = !1),
                          (s.sprites = s.sprites || {}),
                          void 0 !== s.sprites[u])
                        )
                          s.sprites[u].visible = !0;
                        else {
                          var c = this.createSprite(s, a);
                          h.addChild(c);
                        }
                        (s.currentSprite = s.sprites[u]),
                          (s.currentSpriteName = u);
                      }
                      var d = s.bone;
                      (h.position.x = d.worldX + a.x * d.m00 + a.y * d.m01),
                        (h.position.y = d.worldY + a.x * d.m10 + a.y * d.m11),
                        (h.scale.x = d.worldScaleX),
                        (h.scale.y = d.worldScaleY),
                        (h.rotation = -(s.bone.worldRotation * n.degRad)),
                        (s.currentSprite.tint = r.utils.rgb2hex([
                          s.r,
                          s.g,
                          s.b,
                        ]));
                    } else {
                      if (l !== n.AttachmentType.skinnedmesh) {
                        h.visible = !1;
                        continue;
                      }
                      if (!s.currentMeshName || s.currentMeshName !== a.name) {
                        var p = a.name;
                        if (
                          (void 0 !== s.currentMesh &&
                            (s.currentMesh.visible = !1),
                          (s.meshes = s.meshes || {}),
                          void 0 !== s.meshes[p])
                        )
                          s.meshes[p].visible = !0;
                        else {
                          var f = this.createMesh(s, a);
                          h.addChild(f);
                        }
                        (s.currentMesh = s.meshes[p]), (s.currentMeshName = p);
                      }
                      a.computeWorldVertices(
                        s.bone.skeleton.x,
                        s.bone.skeleton.y,
                        s,
                        s.currentMesh.vertices
                      );
                    }
                    (h.visible = !0), (h.alpha = s.a);
                  } else h.visible = !1;
                }
              }),
              (i.prototype.autoUpdateTransform = function () {
                this.lastTime = this.lastTime || Date.now();
                var t = 0.001 * (Date.now() - this.lastTime);
                (this.lastTime = Date.now()),
                  this.update(t),
                  r.Container.prototype.updateTransform.call(this);
              }),
              (i.prototype.createSprite = function (t, e) {
                var i = e.rendererObject,
                  o = i.page.rendererObject,
                  s = new r.math.Rectangle(
                    i.x,
                    i.y,
                    i.rotate ? i.height : i.width,
                    i.rotate ? i.width : i.height
                  ),
                  a = new r.Texture(o, s),
                  h = new r.Sprite(a),
                  l = i.rotate ? 0.5 * Math.PI : 0;
                return (
                  h.scale.set(
                    i.width / i.originalWidth,
                    i.height / i.originalHeight
                  ),
                  (h.rotation = l - e.rotation * n.degRad),
                  (h.anchor.x = h.anchor.y = 0.5),
                  (t.sprites = t.sprites || {}),
                  (t.sprites[i.name] = h),
                  h
                );
              }),
              (i.prototype.createMesh = function (t, e) {
                var i = e.rendererObject,
                  n = i.page.rendererObject,
                  o = new r.Texture(n),
                  s = new r.Strip(o);
                return (
                  (s.drawMode = r.Strip.DrawModes.TRIANGLES),
                  (s.canvasPadding = 1.5),
                  (s.vertices = new Float32Array(e.uvs.length)),
                  (s.uvs = e.uvs),
                  (s.indices = e.triangles),
                  (t.meshes = t.meshes || {}),
                  (t.meshes[e.name] = s),
                  s
                );
              });
          },
          { "../core": 20, "./SpineRuntime": 114 },
        ],
        114: [
          function (t, e) {
            var i = t("../core"),
              r = (e.exports = {
                radDeg: 180 / Math.PI,
                degRad: Math.PI / 180,
                temp: [],
                Float32Array:
                  "undefined" == typeof Float32Array ? Array : Float32Array,
                Uint16Array:
                  "undefined" == typeof Uint16Array ? Array : Uint16Array,
              });
            (r.BoneData = function (t, e) {
              (this.name = t), (this.parent = e);
            }),
              (r.BoneData.prototype = {
                length: 0,
                x: 0,
                y: 0,
                rotation: 0,
                scaleX: 1,
                scaleY: 1,
                inheritScale: !0,
                inheritRotation: !0,
                flipX: !1,
                flipY: !1,
              }),
              (r.SlotData = function (t, e) {
                (this.name = t), (this.boneData = e);
              }),
              (r.SlotData.prototype = {
                r: 1,
                g: 1,
                b: 1,
                a: 1,
                attachmentName: null,
                additiveBlending: !1,
              }),
              (r.IkConstraintData = function (t) {
                (this.name = t), (this.bones = []);
              }),
              (r.IkConstraintData.prototype = {
                target: null,
                bendDirection: 1,
                mix: 1,
              }),
              (r.Bone = function (t, e, i) {
                (this.data = t),
                  (this.skeleton = e),
                  (this.parent = i),
                  this.setToSetupPose();
              }),
              (r.Bone.yDown = !1),
              (r.Bone.prototype = {
                x: 0,
                y: 0,
                rotation: 0,
                rotationIK: 0,
                scaleX: 1,
                scaleY: 1,
                flipX: !1,
                flipY: !1,
                m00: 0,
                m01: 0,
                worldX: 0,
                m10: 0,
                m11: 0,
                worldY: 0,
                worldRotation: 0,
                worldScaleX: 1,
                worldScaleY: 1,
                worldFlipX: !1,
                worldFlipY: !1,
                updateWorldTransform: function () {
                  var t = this.parent;
                  if (t)
                    (this.worldX = this.x * t.m00 + this.y * t.m01 + t.worldX),
                      (this.worldY =
                        this.x * t.m10 + this.y * t.m11 + t.worldY),
                      this.data.inheritScale
                        ? ((this.worldScaleX = t.worldScaleX * this.scaleX),
                          (this.worldScaleY = t.worldScaleY * this.scaleY))
                        : ((this.worldScaleX = this.scaleX),
                          (this.worldScaleY = this.scaleY)),
                      (this.worldRotation = this.data.inheritRotation
                        ? t.worldRotation + this.rotationIK
                        : this.rotationIK),
                      (this.worldFlipX = t.worldFlipX != this.flipX),
                      (this.worldFlipY = t.worldFlipY != this.flipY);
                  else {
                    var e = this.skeleton.flipX,
                      i = this.skeleton.flipY;
                    (this.worldX = e ? -this.x : this.x),
                      (this.worldY = i != r.Bone.yDown ? -this.y : this.y),
                      (this.worldScaleX = this.scaleX),
                      (this.worldScaleY = this.scaleY),
                      (this.worldRotation = this.rotationIK),
                      (this.worldFlipX = e != this.flipX),
                      (this.worldFlipY = i != this.flipY);
                  }
                  var n = this.worldRotation * r.degRad,
                    o = Math.cos(n),
                    s = Math.sin(n);
                  this.worldFlipX
                    ? ((this.m00 = -o * this.worldScaleX),
                      (this.m01 = s * this.worldScaleY))
                    : ((this.m00 = o * this.worldScaleX),
                      (this.m01 = -s * this.worldScaleY)),
                    this.worldFlipY != r.Bone.yDown
                      ? ((this.m10 = -s * this.worldScaleX),
                        (this.m11 = -o * this.worldScaleY))
                      : ((this.m10 = s * this.worldScaleX),
                        (this.m11 = o * this.worldScaleY));
                },
                setToSetupPose: function () {
                  var t = this.data;
                  (this.x = t.x),
                    (this.y = t.y),
                    (this.rotation = t.rotation),
                    (this.rotationIK = this.rotation),
                    (this.scaleX = t.scaleX),
                    (this.scaleY = t.scaleY),
                    (this.flipX = t.flipX),
                    (this.flipY = t.flipY);
                },
                worldToLocal: function (t) {
                  var e = t[0] - this.worldX,
                    i = t[1] - this.worldY,
                    n = this.m00,
                    o = this.m10,
                    s = this.m01,
                    a = this.m11;
                  this.worldFlipX != (this.worldFlipY != r.Bone.yDown) &&
                    ((n = -n), (a = -a));
                  var h = 1 / (n * a - s * o);
                  (t[0] = e * n * h - i * s * h),
                    (t[1] = i * a * h - e * o * h);
                },
                localToWorld: function (t) {
                  var e = t[0],
                    i = t[1];
                  (t[0] = e * this.m00 + i * this.m01 + this.worldX),
                    (t[1] = e * this.m10 + i * this.m11 + this.worldY);
                },
              }),
              (r.Slot = function (t, e) {
                (this.data = t), (this.bone = e), this.setToSetupPose();
              }),
              (r.Slot.prototype = {
                r: 1,
                g: 1,
                b: 1,
                a: 1,
                _attachmentTime: 0,
                attachment: null,
                attachmentVertices: [],
                setAttachment: function (t) {
                  (this.attachment = t),
                    (this._attachmentTime = this.bone.skeleton.time),
                    (this.attachmentVertices.length = 0);
                },
                setAttachmentTime: function (t) {
                  this._attachmentTime = this.bone.skeleton.time - t;
                },
                getAttachmentTime: function () {
                  return this.bone.skeleton.time - this._attachmentTime;
                },
                setToSetupPose: function () {
                  var t = this.data;
                  (this.r = t.r),
                    (this.g = t.g),
                    (this.b = t.b),
                    (this.a = t.a);
                  for (
                    var e = this.bone.skeleton.data.slots, i = 0, r = e.length;
                    r > i;
                    i++
                  )
                    if (e[i] == t) {
                      this.setAttachment(
                        t.attachmentName
                          ? this.bone.skeleton.getAttachmentBySlotIndex(
                              i,
                              t.attachmentName
                            )
                          : null
                      );
                      break;
                    }
                },
              }),
              (r.IkConstraint = function (t, e) {
                (this.data = t),
                  (this.mix = t.mix),
                  (this.bendDirection = t.bendDirection),
                  (this.bones = []);
                for (var i = 0, r = t.bones.length; r > i; i++)
                  this.bones.push(e.findBone(t.bones[i].name));
                this.target = e.findBone(t.target.name);
              }),
              (r.IkConstraint.prototype = {
                apply: function () {
                  var t = this.target,
                    e = this.bones;
                  switch (e.length) {
                    case 1:
                      r.IkConstraint.apply1(e[0], t.worldX, t.worldY, this.mix);
                      break;
                    case 2:
                      r.IkConstraint.apply2(
                        e[0],
                        e[1],
                        t.worldX,
                        t.worldY,
                        this.bendDirection,
                        this.mix
                      );
                  }
                },
              }),
              (r.IkConstraint.apply1 = function (t, e, i, n) {
                var o =
                    t.data.inheritRotation && t.parent
                      ? t.parent.worldRotation
                      : 0,
                  s = t.rotation,
                  a = Math.atan2(i - t.worldY, e - t.worldX) * r.radDeg - o;
                t.rotationIK = s + (a - s) * n;
              }),
              (r.IkConstraint.apply2 = function (t, e, i, n, o, s) {
                var a = e.rotation,
                  h = t.rotation;
                if (!s) return (e.rotationIK = a), void (t.rotationIK = h);
                var l,
                  u,
                  c = r.temp,
                  d = t.parent;
                d
                  ? ((c[0] = i),
                    (c[1] = n),
                    d.worldToLocal(c),
                    (i = (c[0] - t.x) * d.worldScaleX),
                    (n = (c[1] - t.y) * d.worldScaleY))
                  : ((i -= t.x), (n -= t.y)),
                  e.parent == t
                    ? ((l = e.x), (u = e.y))
                    : ((c[0] = e.x),
                      (c[1] = e.y),
                      e.parent.localToWorld(c),
                      t.worldToLocal(c),
                      (l = c[0]),
                      (u = c[1]));
                var p = l * t.worldScaleX,
                  f = u * t.worldScaleY,
                  m = Math.atan2(f, p),
                  v = Math.sqrt(p * p + f * f),
                  g = e.data.length * e.worldScaleX,
                  y = 2 * v * g;
                if (1e-4 > y)
                  return void (e.rotationIK =
                    a + (Math.atan2(n, i) * r.radDeg - h - a) * s);
                var x = (i * i + n * n - v * v - g * g) / y;
                -1 > x ? (x = -1) : x > 1 && (x = 1);
                var _ = Math.acos(x) * o,
                  b = v + g * x,
                  w = g * Math.sin(_),
                  T = Math.atan2(n * b - i * w, i * b + n * w),
                  S = (T - m) * r.radDeg - h;
                S > 180 ? (S -= 360) : -180 > S && (S += 360),
                  (t.rotationIK = h + S * s),
                  (S = (_ + m) * r.radDeg - a),
                  S > 180 ? (S -= 360) : -180 > S && (S += 360),
                  (e.rotationIK =
                    a + (S + t.worldRotation - e.parent.worldRotation) * s);
              }),
              (r.Skin = function (t) {
                (this.name = t), (this.attachments = {});
              }),
              (r.Skin.prototype = {
                addAttachment: function (t, e, i) {
                  this.attachments[t + ":" + e] = i;
                },
                getAttachment: function (t, e) {
                  return this.attachments[t + ":" + e];
                },
                _attachAll: function (t, e) {
                  for (var i in e.attachments) {
                    var r = i.indexOf(":"),
                      n = parseInt(i.substring(0, r)),
                      o = i.substring(r + 1),
                      s = t.slots[n];
                    if (s.attachment && s.attachment.name == o) {
                      var a = this.getAttachment(n, o);
                      a && s.setAttachment(a);
                    }
                  }
                },
              }),
              (r.Animation = function (t, e, i) {
                (this.name = t), (this.timelines = e), (this.duration = i);
              }),
              (r.Animation.prototype = {
                apply: function (t, e, i, r, n) {
                  r &&
                    0 != this.duration &&
                    ((i %= this.duration), (e %= this.duration));
                  for (var o = this.timelines, s = 0, a = o.length; a > s; s++)
                    o[s].apply(t, e, i, n, 1);
                },
                mix: function (t, e, i, r, n, o) {
                  r &&
                    0 != this.duration &&
                    ((i %= this.duration), (e %= this.duration));
                  for (var s = this.timelines, a = 0, h = s.length; h > a; a++)
                    s[a].apply(t, e, i, n, o);
                },
              }),
              (r.Animation.binarySearch = function (t, e, i) {
                var r = 0,
                  n = Math.floor(t.length / i) - 2;
                if (!n) return i;
                for (var o = n >>> 1; ; ) {
                  if ((t[(o + 1) * i] <= e ? (r = o + 1) : (n = o), r == n))
                    return (r + 1) * i;
                  o = (r + n) >>> 1;
                }
              }),
              (r.Animation.binarySearch1 = function (t, e) {
                var i = 0,
                  r = t.length - 2;
                if (!r) return 1;
                for (var n = r >>> 1; ; ) {
                  if ((t[n + 1] <= e ? (i = n + 1) : (r = n), i == r))
                    return i + 1;
                  n = (i + r) >>> 1;
                }
              }),
              (r.Animation.linearSearch = function (t, e, i) {
                for (var r = 0, n = t.length - i; n >= r; r += i)
                  if (t[r] > e) return r;
                return -1;
              }),
              (r.Curves = function () {
                this.curves = [];
              }),
              (r.Curves.prototype = {
                setLinear: function (t) {
                  this.curves[19 * t] = 0;
                },
                setStepped: function (t) {
                  this.curves[19 * t] = 1;
                },
                setCurve: function (t, e, i, r, n) {
                  var o = 0.1,
                    s = o * o,
                    a = s * o,
                    h = 3 * o,
                    l = 3 * s,
                    u = 6 * s,
                    c = 6 * a,
                    d = 2 * -e + r,
                    p = 2 * -i + n,
                    f = 3 * (e - r) + 1,
                    m = 3 * (i - n) + 1,
                    v = e * h + d * l + f * a,
                    g = i * h + p * l + m * a,
                    y = d * u + f * c,
                    x = p * u + m * c,
                    _ = f * c,
                    b = m * c,
                    w = 19 * t,
                    T = this.curves;
                  T[w++] = 2;
                  for (var S = v, E = g, A = w + 19 - 1; A > w; w += 2)
                    (T[w] = S),
                      (T[w + 1] = E),
                      (v += y),
                      (g += x),
                      (y += _),
                      (x += b),
                      (S += v),
                      (E += g);
                },
                getCurvePercent: function (t, e) {
                  e = 0 > e ? 0 : e > 1 ? 1 : e;
                  var i = this.curves,
                    r = 19 * t,
                    n = i[r];
                  if (0 === n) return e;
                  if (1 == n) return 0;
                  r++;
                  for (var o = 0, s = r, a = r + 19 - 1; a > r; r += 2)
                    if (((o = i[r]), o >= e)) {
                      var h, l;
                      return (
                        r == s
                          ? ((h = 0), (l = 0))
                          : ((h = i[r - 2]), (l = i[r - 1])),
                        l + ((i[r + 1] - l) * (e - h)) / (o - h)
                      );
                    }
                  var u = i[r - 1];
                  return u + ((1 - u) * (e - o)) / (1 - o);
                },
              }),
              (r.RotateTimeline = function (t) {
                (this.curves = new r.Curves(t)),
                  (this.frames = []),
                  (this.frames.length = 2 * t);
              }),
              (r.RotateTimeline.prototype = {
                boneIndex: 0,
                getFrameCount: function () {
                  return this.frames.length / 2;
                },
                setFrame: function (t, e, i) {
                  (t *= 2), (this.frames[t] = e), (this.frames[t + 1] = i);
                },
                apply: function (t, e, i, n, o) {
                  var s = this.frames;
                  if (!(i < s[0])) {
                    var a = t.bones[this.boneIndex];
                    if (i >= s[s.length - 2]) {
                      for (
                        var h = a.data.rotation + s[s.length - 1] - a.rotation;
                        h > 180;

                      )
                        h -= 360;
                      for (; -180 > h; ) h += 360;
                      return void (a.rotation += h * o);
                    }
                    var l = r.Animation.binarySearch(s, i, 2),
                      u = s[l - 1],
                      c = s[l],
                      d = 1 - (i - c) / (s[l - 2] - c);
                    d = this.curves.getCurvePercent(l / 2 - 1, d);
                    for (var h = s[l + 1] - u; h > 180; ) h -= 360;
                    for (; -180 > h; ) h += 360;
                    for (
                      h = a.data.rotation + (u + h * d) - a.rotation;
                      h > 180;

                    )
                      h -= 360;
                    for (; -180 > h; ) h += 360;
                    a.rotation += h * o;
                  }
                },
              }),
              (r.TranslateTimeline = function (t) {
                (this.curves = new r.Curves(t)),
                  (this.frames = []),
                  (this.frames.length = 3 * t);
              }),
              (r.TranslateTimeline.prototype = {
                boneIndex: 0,
                getFrameCount: function () {
                  return this.frames.length / 3;
                },
                setFrame: function (t, e, i, r) {
                  (t *= 3),
                    (this.frames[t] = e),
                    (this.frames[t + 1] = i),
                    (this.frames[t + 2] = r);
                },
                apply: function (t, e, i, n, o) {
                  var s = this.frames;
                  if (!(i < s[0])) {
                    var a = t.bones[this.boneIndex];
                    if (i >= s[s.length - 3])
                      return (
                        (a.x += (a.data.x + s[s.length - 2] - a.x) * o),
                        void (a.y += (a.data.y + s[s.length - 1] - a.y) * o)
                      );
                    var h = r.Animation.binarySearch(s, i, 3),
                      l = s[h - 2],
                      u = s[h - 1],
                      c = s[h],
                      d = 1 - (i - c) / (s[h + -3] - c);
                    (d = this.curves.getCurvePercent(h / 3 - 1, d)),
                      (a.x += (a.data.x + l + (s[h + 1] - l) * d - a.x) * o),
                      (a.y += (a.data.y + u + (s[h + 2] - u) * d - a.y) * o);
                  }
                },
              }),
              (r.ScaleTimeline = function (t) {
                (this.curves = new r.Curves(t)),
                  (this.frames = []),
                  (this.frames.length = 3 * t);
              }),
              (r.ScaleTimeline.prototype = {
                boneIndex: 0,
                getFrameCount: function () {
                  return this.frames.length / 3;
                },
                setFrame: function (t, e, i, r) {
                  (t *= 3),
                    (this.frames[t] = e),
                    (this.frames[t + 1] = i),
                    (this.frames[t + 2] = r);
                },
                apply: function (t, e, i, n, o) {
                  var s = this.frames;
                  if (!(i < s[0])) {
                    var a = t.bones[this.boneIndex];
                    if (i >= s[s.length - 3])
                      return (
                        (a.scaleX +=
                          (a.data.scaleX * s[s.length - 2] - a.scaleX) * o),
                        void (a.scaleY +=
                          (a.data.scaleY * s[s.length - 1] - a.scaleY) * o)
                      );
                    var h = r.Animation.binarySearch(s, i, 3),
                      l = s[h - 2],
                      u = s[h - 1],
                      c = s[h],
                      d = 1 - (i - c) / (s[h + -3] - c);
                    (d = this.curves.getCurvePercent(h / 3 - 1, d)),
                      (a.scaleX +=
                        (a.data.scaleX * (l + (s[h + 1] - l) * d) - a.scaleX) *
                        o),
                      (a.scaleY +=
                        (a.data.scaleY * (u + (s[h + 2] - u) * d) - a.scaleY) *
                        o);
                  }
                },
              }),
              (r.ColorTimeline = function (t) {
                (this.curves = new r.Curves(t)),
                  (this.frames = []),
                  (this.frames.length = 5 * t);
              }),
              (r.ColorTimeline.prototype = {
                slotIndex: 0,
                getFrameCount: function () {
                  return this.frames.length / 5;
                },
                setFrame: function (t, e, i, r, n, o) {
                  (t *= 5),
                    (this.frames[t] = e),
                    (this.frames[t + 1] = i),
                    (this.frames[t + 2] = r),
                    (this.frames[t + 3] = n),
                    (this.frames[t + 4] = o);
                },
                apply: function (t, e, i, n, o) {
                  var s = this.frames;
                  if (!(i < s[0])) {
                    var a, h, l, u;
                    if (i >= s[s.length - 5]) {
                      var c = s.length - 1;
                      (a = s[c - 3]),
                        (h = s[c - 2]),
                        (l = s[c - 1]),
                        (u = s[c]);
                    } else {
                      var d = r.Animation.binarySearch(s, i, 5),
                        p = s[d - 4],
                        f = s[d - 3],
                        m = s[d - 2],
                        v = s[d - 1],
                        g = s[d],
                        y = 1 - (i - g) / (s[d - 5] - g);
                      (y = this.curves.getCurvePercent(d / 5 - 1, y)),
                        (a = p + (s[d + 1] - p) * y),
                        (h = f + (s[d + 2] - f) * y),
                        (l = m + (s[d + 3] - m) * y),
                        (u = v + (s[d + 4] - v) * y);
                    }
                    var x = t.slots[this.slotIndex];
                    1 > o
                      ? ((x.r += (a - x.r) * o),
                        (x.g += (h - x.g) * o),
                        (x.b += (l - x.b) * o),
                        (x.a += (u - x.a) * o))
                      : ((x.r = a), (x.g = h), (x.b = l), (x.a = u));
                  }
                },
              }),
              (r.AttachmentTimeline = function (t) {
                (this.curves = new r.Curves(t)),
                  (this.frames = []),
                  (this.frames.length = t),
                  (this.attachmentNames = []),
                  (this.attachmentNames.length = t);
              }),
              (r.AttachmentTimeline.prototype = {
                slotIndex: 0,
                getFrameCount: function () {
                  return this.frames.length;
                },
                setFrame: function (t, e, i) {
                  (this.frames[t] = e), (this.attachmentNames[t] = i);
                },
                apply: function (t, e, i) {
                  var n = this.frames;
                  if (i < n[0])
                    return void (
                      e > i && this.apply(t, e, Number.MAX_VALUE, null, 0)
                    );
                  e > i && (e = -1);
                  var o =
                    i >= n[n.length - 1]
                      ? n.length - 1
                      : r.Animation.binarySearch1(n, i) - 1;
                  if (!(n[o] < e)) {
                    var s = this.attachmentNames[o];
                    t.slots[this.slotIndex].setAttachment(
                      s ? t.getAttachmentBySlotIndex(this.slotIndex, s) : null
                    );
                  }
                },
              }),
              (r.EventTimeline = function (t) {
                (this.frames = []),
                  (this.frames.length = t),
                  (this.events = []),
                  (this.events.length = t);
              }),
              (r.EventTimeline.prototype = {
                getFrameCount: function () {
                  return this.frames.length;
                },
                setFrame: function (t, e, i) {
                  (this.frames[t] = e), (this.events[t] = i);
                },
                apply: function (t, e, i, n, o) {
                  if (n) {
                    var s = this.frames,
                      a = s.length;
                    if (e > i)
                      this.apply(t, e, Number.MAX_VALUE, n, o), (e = -1);
                    else if (e >= s[a - 1]) return;
                    if (!(i < s[0])) {
                      var h;
                      if (e < s[0]) h = 0;
                      else {
                        h = r.Animation.binarySearch1(s, e);
                        for (var l = s[h]; h > 0 && s[h - 1] == l; ) h--;
                      }
                      for (var u = this.events; a > h && i >= s[h]; h++)
                        n.push(u[h]);
                    }
                  }
                },
              }),
              (r.DrawOrderTimeline = function (t) {
                (this.frames = []),
                  (this.frames.length = t),
                  (this.drawOrders = []),
                  (this.drawOrders.length = t);
              }),
              (r.DrawOrderTimeline.prototype = {
                getFrameCount: function () {
                  return this.frames.length;
                },
                setFrame: function (t, e, i) {
                  (this.frames[t] = e), (this.drawOrders[t] = i);
                },
                apply: function (t, e, i) {
                  var n = this.frames;
                  if (!(i < n[0])) {
                    var o;
                    o =
                      i >= n[n.length - 1]
                        ? n.length - 1
                        : r.Animation.binarySearch1(n, i) - 1;
                    var s = t.drawOrder,
                      a = t.slots,
                      h = this.drawOrders[o];
                    if (h)
                      for (var l = 0, u = h.length; u > l; l++)
                        s[l] = t.slots[h[l]];
                    else for (var l = 0, u = a.length; u > l; l++) s[l] = a[l];
                  }
                },
              }),
              (r.FfdTimeline = function (t) {
                (this.curves = new r.Curves(t)),
                  (this.frames = []),
                  (this.frames.length = t),
                  (this.frameVertices = []),
                  (this.frameVertices.length = t);
              }),
              (r.FfdTimeline.prototype = {
                slotIndex: 0,
                attachment: 0,
                getFrameCount: function () {
                  return this.frames.length;
                },
                setFrame: function (t, e, i) {
                  (this.frames[t] = e), (this.frameVertices[t] = i);
                },
                apply: function (t, e, i, n, o) {
                  var s = t.slots[this.slotIndex];
                  if (s.attachment == this.attachment) {
                    var a = this.frames;
                    if (!(i < a[0])) {
                      var h = this.frameVertices,
                        l = h[0].length,
                        u = s.attachmentVertices;
                      if (
                        (u.length != l && (o = 1),
                        (u.length = l),
                        i >= a[a.length - 1])
                      ) {
                        var c = h[a.length - 1];
                        if (1 > o)
                          for (var d = 0; l > d; d++) u[d] += (c[d] - u[d]) * o;
                        else for (var d = 0; l > d; d++) u[d] = c[d];
                      } else {
                        var p = r.Animation.binarySearch1(a, i),
                          f = a[p],
                          m = 1 - (i - f) / (a[p - 1] - f);
                        m = this.curves.getCurvePercent(
                          p - 1,
                          0 > m ? 0 : m > 1 ? 1 : m
                        );
                        var v = h[p - 1],
                          g = h[p];
                        if (1 > o)
                          for (var d = 0; l > d; d++) {
                            var y = v[d];
                            u[d] += (y + (g[d] - y) * m - u[d]) * o;
                          }
                        else
                          for (var d = 0; l > d; d++) {
                            var y = v[d];
                            u[d] = y + (g[d] - y) * m;
                          }
                      }
                    }
                  }
                },
              }),
              (r.IkConstraintTimeline = function (t) {
                (this.curves = new r.Curves(t)),
                  (this.frames = []),
                  (this.frames.length = 3 * t);
              }),
              (r.IkConstraintTimeline.prototype = {
                ikConstraintIndex: 0,
                getFrameCount: function () {
                  return this.frames.length / 3;
                },
                setFrame: function (t, e, i, r) {
                  (t *= 3),
                    (this.frames[t] = e),
                    (this.frames[t + 1] = i),
                    (this.frames[t + 2] = r);
                },
                apply: function (t, e, i, n, o) {
                  var s = this.frames;
                  if (!(i < s[0])) {
                    var a = t.ikConstraints[this.ikConstraintIndex];
                    if (i >= s[s.length - 3])
                      return (
                        (a.mix += (s[s.length - 2] - a.mix) * o),
                        void (a.bendDirection = s[s.length - 1])
                      );
                    var h = r.Animation.binarySearch(s, i, 3),
                      l = s[h + -2],
                      u = s[h],
                      c = 1 - (i - u) / (s[h + -3] - u);
                    c = this.curves.getCurvePercent(h / 3 - 1, c);
                    var d = l + (s[h + 1] - l) * c;
                    (a.mix += (d - a.mix) * o), (a.bendDirection = s[h + -1]);
                  }
                },
              }),
              (r.FlipXTimeline = function (t) {
                (this.curves = new r.Curves(t)),
                  (this.frames = []),
                  (this.frames.length = 2 * t);
              }),
              (r.FlipXTimeline.prototype = {
                boneIndex: 0,
                getFrameCount: function () {
                  return this.frames.length / 2;
                },
                setFrame: function (t, e, i) {
                  (t *= 2),
                    (this.frames[t] = e),
                    (this.frames[t + 1] = i ? 1 : 0);
                },
                apply: function (t, e, i) {
                  var n = this.frames;
                  if (i < n[0])
                    return void (
                      e > i && this.apply(t, e, Number.MAX_VALUE, null, 0)
                    );
                  e > i && (e = -1);
                  var o =
                    (i >= n[n.length - 2]
                      ? n.length
                      : r.Animation.binarySearch(n, i, 2)) - 2;
                  n[o] < e || (t.bones[boneIndex].flipX = 0 != n[o + 1]);
                },
              }),
              (r.FlipYTimeline = function (t) {
                (this.curves = new r.Curves(t)),
                  (this.frames = []),
                  (this.frames.length = 2 * t);
              }),
              (r.FlipYTimeline.prototype = {
                boneIndex: 0,
                getFrameCount: function () {
                  return this.frames.length / 2;
                },
                setFrame: function (t, e, i) {
                  (t *= 2),
                    (this.frames[t] = e),
                    (this.frames[t + 1] = i ? 1 : 0);
                },
                apply: function (t, e, i) {
                  var n = this.frames;
                  if (i < n[0])
                    return void (
                      e > i && this.apply(t, e, Number.MAX_VALUE, null, 0)
                    );
                  e > i && (e = -1);
                  var o =
                    (i >= n[n.length - 2]
                      ? n.length
                      : r.Animation.binarySearch(n, i, 2)) - 2;
                  n[o] < e || (t.bones[boneIndex].flipY = 0 != n[o + 1]);
                },
              }),
              (r.SkeletonData = function () {
                (this.bones = []),
                  (this.slots = []),
                  (this.skins = []),
                  (this.events = []),
                  (this.animations = []),
                  (this.ikConstraints = []);
              }),
              (r.SkeletonData.prototype = {
                name: null,
                defaultSkin: null,
                width: 0,
                height: 0,
                version: null,
                hash: null,
                findBone: function (t) {
                  for (var e = this.bones, i = 0, r = e.length; r > i; i++)
                    if (e[i].name == t) return e[i];
                  return null;
                },
                findBoneIndex: function (t) {
                  for (var e = this.bones, i = 0, r = e.length; r > i; i++)
                    if (e[i].name == t) return i;
                  return -1;
                },
                findSlot: function (t) {
                  for (var e = this.slots, i = 0, r = e.length; r > i; i++)
                    if (e[i].name == t) return slot[i];
                  return null;
                },
                findSlotIndex: function (t) {
                  for (var e = this.slots, i = 0, r = e.length; r > i; i++)
                    if (e[i].name == t) return i;
                  return -1;
                },
                findSkin: function (t) {
                  for (var e = this.skins, i = 0, r = e.length; r > i; i++)
                    if (e[i].name == t) return e[i];
                  return null;
                },
                findEvent: function (t) {
                  for (var e = this.events, i = 0, r = e.length; r > i; i++)
                    if (e[i].name == t) return e[i];
                  return null;
                },
                findAnimation: function (t) {
                  for (var e = this.animations, i = 0, r = e.length; r > i; i++)
                    if (e[i].name == t) return e[i];
                  return null;
                },
                findIkConstraint: function (t) {
                  for (
                    var e = this.ikConstraints, i = 0, r = e.length;
                    r > i;
                    i++
                  )
                    if (e[i].name == t) return e[i];
                  return null;
                },
              }),
              (r.Skeleton = function (t) {
                (this.data = t), (this.bones = []);
                for (var e = 0, i = t.bones.length; i > e; e++) {
                  var n = t.bones[e],
                    o = n.parent ? this.bones[t.bones.indexOf(n.parent)] : null;
                  this.bones.push(new r.Bone(n, this, o));
                }
                (this.slots = []), (this.drawOrder = []);
                for (var e = 0, i = t.slots.length; i > e; e++) {
                  var s = t.slots[e],
                    a = this.bones[t.bones.indexOf(s.boneData)],
                    h = new r.Slot(s, a);
                  this.slots.push(h), this.drawOrder.push(h);
                }
                this.ikConstraints = [];
                for (var e = 0, i = t.ikConstraints.length; i > e; e++)
                  this.ikConstraints.push(
                    new r.IkConstraint(t.ikConstraints[e], this)
                  );
                (this.boneCache = []), this.updateCache();
              }),
              (r.Skeleton.prototype = {
                x: 0,
                y: 0,
                skin: null,
                r: 1,
                g: 1,
                b: 1,
                a: 1,
                time: 0,
                flipX: !1,
                flipY: !1,
                updateCache: function () {
                  var t = this.ikConstraints,
                    e = t.length,
                    i = e + 1,
                    r = this.boneCache;
                  r.length > i && (r.length = i);
                  for (var n = 0, o = r.length; o > n; n++) r[n].length = 0;
                  for (; r.length < i; ) r[r.length] = [];
                  var s = r[0],
                    a = this.bones;
                  t: for (var n = 0, o = a.length; o > n; n++) {
                    var h = a[n],
                      l = h;
                    do {
                      for (var u = 0; e > u; u++)
                        for (
                          var c = t[u],
                            d = c.bones[0],
                            p = c.bones[c.bones.length - 1];
                          ;

                        ) {
                          if (l == p) {
                            r[u].push(h), r[u + 1].push(h);
                            continue t;
                          }
                          if (p == d) break;
                          p = p.parent;
                        }
                      l = l.parent;
                    } while (l);
                    s[s.length] = h;
                  }
                },
                updateWorldTransform: function () {
                  for (var t = this.bones, e = 0, i = t.length; i > e; e++) {
                    var r = t[e];
                    r.rotationIK = r.rotation;
                  }
                  for (var e = 0, n = this.boneCache.length - 1; ; ) {
                    for (
                      var o = this.boneCache[e], s = 0, a = o.length;
                      a > s;
                      s++
                    )
                      o[s].updateWorldTransform();
                    if (e == n) break;
                    this.ikConstraints[e].apply(), e++;
                  }
                },
                setToSetupPose: function () {
                  this.setBonesToSetupPose(), this.setSlotsToSetupPose();
                },
                setBonesToSetupPose: function () {
                  for (var t = this.bones, e = 0, i = t.length; i > e; e++)
                    t[e].setToSetupPose();
                  for (
                    var r = this.ikConstraints, e = 0, i = r.length;
                    i > e;
                    e++
                  ) {
                    var n = r[e];
                    (n.bendDirection = n.data.bendDirection),
                      (n.mix = n.data.mix);
                  }
                },
                setSlotsToSetupPose: function () {
                  for (
                    var t = this.slots, e = this.drawOrder, i = 0, r = t.length;
                    r > i;
                    i++
                  )
                    (e[i] = t[i]), t[i].setToSetupPose(i);
                },
                getRootBone: function () {
                  return this.bones.length ? this.bones[0] : null;
                },
                findBone: function (t) {
                  for (var e = this.bones, i = 0, r = e.length; r > i; i++)
                    if (e[i].data.name == t) return e[i];
                  return null;
                },
                findBoneIndex: function (t) {
                  for (var e = this.bones, i = 0, r = e.length; r > i; i++)
                    if (e[i].data.name == t) return i;
                  return -1;
                },
                findSlot: function (t) {
                  for (var e = this.slots, i = 0, r = e.length; r > i; i++)
                    if (e[i].data.name == t) return e[i];
                  return null;
                },
                findSlotIndex: function (t) {
                  for (var e = this.slots, i = 0, r = e.length; r > i; i++)
                    if (e[i].data.name == t) return i;
                  return -1;
                },
                setSkinByName: function (t) {
                  var e = this.data.findSkin(t);
                  if (!e) throw "Skin not found: " + t;
                  this.setSkin(e);
                },
                setSkin: function (t) {
                  if (t)
                    if (this.skin) t._attachAll(this, this.skin);
                    else
                      for (
                        var e = this.slots, i = 0, r = e.length;
                        r > i;
                        i++
                      ) {
                        var n = e[i],
                          o = n.data.attachmentName;
                        if (o) {
                          var s = t.getAttachment(i, o);
                          s && n.setAttachment(s);
                        }
                      }
                  this.skin = t;
                },
                getAttachmentBySlotName: function (t, e) {
                  return this.getAttachmentBySlotIndex(
                    this.data.findSlotIndex(t),
                    e
                  );
                },
                getAttachmentBySlotIndex: function (t, e) {
                  if (this.skin) {
                    var i = this.skin.getAttachment(t, e);
                    if (i) return i;
                  }
                  return this.data.defaultSkin
                    ? this.data.defaultSkin.getAttachment(t, e)
                    : null;
                },
                setAttachment: function (t, e) {
                  for (var i = this.slots, r = 0, n = i.length; n > r; r++) {
                    var o = i[r];
                    if (o.data.name == t) {
                      var s = null;
                      if (e && ((s = this.getAttachmentBySlotIndex(r, e)), !s))
                        throw "Attachment not found: " + e + ", for slot: " + t;
                      return void o.setAttachment(s);
                    }
                  }
                  throw "Slot not found: " + t;
                },
                findIkConstraint: function (t) {
                  for (
                    var e = this.ikConstraints, i = 0, r = e.length;
                    r > i;
                    i++
                  )
                    if (e[i].data.name == t) return e[i];
                  return null;
                },
                update: function (t) {
                  this.time += t;
                },
              }),
              (r.EventData = function (t) {
                this.name = t;
              }),
              (r.EventData.prototype = {
                intValue: 0,
                floatValue: 0,
                stringValue: null,
              }),
              (r.Event = function (t) {
                this.data = t;
              }),
              (r.Event.prototype = {
                intValue: 0,
                floatValue: 0,
                stringValue: null,
              }),
              (r.AttachmentType = {
                region: 0,
                boundingbox: 1,
                mesh: 2,
                skinnedmesh: 3,
              }),
              (r.RegionAttachment = function (t) {
                (this.name = t),
                  (this.offset = []),
                  (this.offset.length = 8),
                  (this.uvs = []),
                  (this.uvs.length = 8);
              }),
              (r.RegionAttachment.prototype = {
                type: r.AttachmentType.region,
                x: 0,
                y: 0,
                rotation: 0,
                scaleX: 1,
                scaleY: 1,
                width: 0,
                height: 0,
                r: 1,
                g: 1,
                b: 1,
                a: 1,
                path: null,
                rendererObject: null,
                regionOffsetX: 0,
                regionOffsetY: 0,
                regionWidth: 0,
                regionHeight: 0,
                regionOriginalWidth: 0,
                regionOriginalHeight: 0,
                setUVs: function (t, e, i, r, n) {
                  var o = this.uvs;
                  n
                    ? ((o[2] = t),
                      (o[3] = r),
                      (o[4] = t),
                      (o[5] = e),
                      (o[6] = i),
                      (o[7] = e),
                      (o[0] = i),
                      (o[1] = r))
                    : ((o[0] = t),
                      (o[1] = r),
                      (o[2] = t),
                      (o[3] = e),
                      (o[4] = i),
                      (o[5] = e),
                      (o[6] = i),
                      (o[7] = r));
                },
                updateOffset: function () {
                  var t = (this.width / this.regionOriginalWidth) * this.scaleX,
                    e = (this.height / this.regionOriginalHeight) * this.scaleY,
                    i =
                      (-this.width / 2) * this.scaleX + this.regionOffsetX * t,
                    n =
                      (-this.height / 2) * this.scaleY + this.regionOffsetY * e,
                    o = i + this.regionWidth * t,
                    s = n + this.regionHeight * e,
                    a = this.rotation * r.degRad,
                    h = Math.cos(a),
                    l = Math.sin(a),
                    u = i * h + this.x,
                    c = i * l,
                    d = n * h + this.y,
                    p = n * l,
                    f = o * h + this.x,
                    m = o * l,
                    v = s * h + this.y,
                    g = s * l,
                    y = this.offset;
                  (y[0] = u - p),
                    (y[1] = d + c),
                    (y[2] = u - g),
                    (y[3] = v + c),
                    (y[4] = f - g),
                    (y[5] = v + m),
                    (y[6] = f - p),
                    (y[7] = d + m);
                },
                computeVertices: function (t, e, i, r) {
                  (t += i.worldX), (e += i.worldY);
                  var n = i.m00,
                    o = i.m01,
                    s = i.m10,
                    a = i.m11,
                    h = this.offset;
                  (r[0] = h[0] * n + h[1] * o + t),
                    (r[1] = h[0] * s + h[1] * a + e),
                    (r[2] = h[2] * n + h[3] * o + t),
                    (r[3] = h[2] * s + h[3] * a + e),
                    (r[4] = h[4] * n + h[5] * o + t),
                    (r[5] = h[4] * s + h[5] * a + e),
                    (r[6] = h[6] * n + h[7] * o + t),
                    (r[7] = h[6] * s + h[7] * a + e);
                },
              }),
              (r.MeshAttachment = function (t) {
                this.name = t;
              }),
              (r.MeshAttachment.prototype = {
                type: r.AttachmentType.mesh,
                vertices: null,
                uvs: null,
                regionUVs: null,
                triangles: null,
                hullLength: 0,
                r: 1,
                g: 1,
                b: 1,
                a: 1,
                path: null,
                rendererObject: null,
                regionU: 0,
                regionV: 0,
                regionU2: 0,
                regionV2: 0,
                regionRotate: !1,
                regionOffsetX: 0,
                regionOffsetY: 0,
                regionWidth: 0,
                regionHeight: 0,
                regionOriginalWidth: 0,
                regionOriginalHeight: 0,
                edges: null,
                width: 0,
                height: 0,
                updateUVs: function () {
                  var t = this.regionU2 - this.regionU,
                    e = this.regionV2 - this.regionV,
                    i = this.regionUVs.length;
                  if (
                    ((this.uvs && this.uvs.length == i) ||
                      (this.uvs = new r.Float32Array(i)),
                    this.regionRotate)
                  )
                    for (var n = 0; i > n; n += 2)
                      (this.uvs[n] = this.regionU + this.regionUVs[n + 1] * t),
                        (this.uvs[n + 1] =
                          this.regionV + e - this.regionUVs[n] * e);
                  else
                    for (var n = 0; i > n; n += 2)
                      (this.uvs[n] = this.regionU + this.regionUVs[n] * t),
                        (this.uvs[n + 1] =
                          this.regionV + this.regionUVs[n + 1] * e);
                },
                computeWorldVertices: function (t, e, i, r) {
                  var n = i.bone;
                  (t += n.worldX), (e += n.worldY);
                  var o = n.m00,
                    s = n.m01,
                    a = n.m10,
                    h = n.m11,
                    l = this.vertices,
                    u = l.length;
                  i.attachmentVertices.length == u &&
                    (l = i.attachmentVertices);
                  for (var c = 0; u > c; c += 2) {
                    var d = l[c],
                      p = l[c + 1];
                    (r[c] = d * o + p * s + t), (r[c + 1] = d * a + p * h + e);
                  }
                },
              }),
              (r.SkinnedMeshAttachment = function (t) {
                this.name = t;
              }),
              (r.SkinnedMeshAttachment.prototype = {
                type: r.AttachmentType.skinnedmesh,
                bones: null,
                weights: null,
                uvs: null,
                regionUVs: null,
                triangles: null,
                hullLength: 0,
                r: 1,
                g: 1,
                b: 1,
                a: 1,
                path: null,
                rendererObject: null,
                regionU: 0,
                regionV: 0,
                regionU2: 0,
                regionV2: 0,
                regionRotate: !1,
                regionOffsetX: 0,
                regionOffsetY: 0,
                regionWidth: 0,
                regionHeight: 0,
                regionOriginalWidth: 0,
                regionOriginalHeight: 0,
                edges: null,
                width: 0,
                height: 0,
                updateUVs: function () {
                  var t = this.regionU2 - this.regionU,
                    e = this.regionV2 - this.regionV,
                    i = this.regionUVs.length;
                  if (
                    ((this.uvs && this.uvs.length == i) ||
                      (this.uvs = new r.Float32Array(i)),
                    this.regionRotate)
                  )
                    for (var n = 0; i > n; n += 2)
                      (this.uvs[n] = this.regionU + this.regionUVs[n + 1] * t),
                        (this.uvs[n + 1] =
                          this.regionV + e - this.regionUVs[n] * e);
                  else
                    for (var n = 0; i > n; n += 2)
                      (this.uvs[n] = this.regionU + this.regionUVs[n] * t),
                        (this.uvs[n + 1] =
                          this.regionV + this.regionUVs[n + 1] * e);
                },
                computeWorldVertices: function (t, e, i, r) {
                  var n,
                    o,
                    s,
                    a,
                    h,
                    l,
                    u,
                    c = i.bone.skeleton.bones,
                    d = this.weights,
                    p = this.bones,
                    f = 0,
                    m = 0,
                    v = 0,
                    g = 0,
                    y = p.length;
                  if (i.attachmentVertices.length)
                    for (var x = i.attachmentVertices; y > m; f += 2) {
                      for (
                        o = 0, s = 0, n = p[m++] + m;
                        n > m;
                        m++, v += 3, g += 2
                      )
                        (a = c[p[m]]),
                          (h = d[v] + x[g]),
                          (l = d[v + 1] + x[g + 1]),
                          (u = d[v + 2]),
                          (o += (h * a.m00 + l * a.m01 + a.worldX) * u),
                          (s += (h * a.m10 + l * a.m11 + a.worldY) * u);
                      (r[f] = o + t), (r[f + 1] = s + e);
                    }
                  else
                    for (; y > m; f += 2) {
                      for (o = 0, s = 0, n = p[m++] + m; n > m; m++, v += 3)
                        (a = c[p[m]]),
                          (h = d[v]),
                          (l = d[v + 1]),
                          (u = d[v + 2]),
                          (o += (h * a.m00 + l * a.m01 + a.worldX) * u),
                          (s += (h * a.m10 + l * a.m11 + a.worldY) * u);
                      (r[f] = o + t), (r[f + 1] = s + e);
                    }
                },
              }),
              (r.BoundingBoxAttachment = function (t) {
                (this.name = t), (this.vertices = []);
              }),
              (r.BoundingBoxAttachment.prototype = {
                type: r.AttachmentType.boundingbox,
                computeWorldVertices: function (t, e, i, r) {
                  (t += i.worldX), (e += i.worldY);
                  for (
                    var n = i.m00,
                      o = i.m01,
                      s = i.m10,
                      a = i.m11,
                      h = this.vertices,
                      l = 0,
                      u = h.length;
                    u > l;
                    l += 2
                  ) {
                    var c = h[l],
                      d = h[l + 1];
                    (r[l] = c * n + d * o + t), (r[l + 1] = c * s + d * a + e);
                  }
                },
              }),
              (r.AnimationStateData = function (t) {
                (this.skeletonData = t), (this.animationToMixTime = {});
              }),
              (r.AnimationStateData.prototype = {
                defaultMix: 0,
                setMixByName: function (t, e, i) {
                  var r = this.skeletonData.findAnimation(t);
                  if (!r) throw "Animation not found: " + t;
                  var n = this.skeletonData.findAnimation(e);
                  if (!n) throw "Animation not found: " + e;
                  this.setMix(r, n, i);
                },
                setMix: function (t, e, i) {
                  this.animationToMixTime[t.name + ":" + e.name] = i;
                },
                getMix: function (t, e) {
                  var i = t.name + ":" + e.name;
                  return this.animationToMixTime.hasOwnProperty(i)
                    ? this.animationToMixTime[i]
                    : this.defaultMix;
                },
              }),
              (r.TrackEntry = function () {}),
              (r.TrackEntry.prototype = {
                next: null,
                previous: null,
                animation: null,
                loop: !1,
                delay: 0,
                time: 0,
                lastTime: -1,
                endTime: 0,
                timeScale: 1,
                mixTime: 0,
                mixDuration: 0,
                mix: 1,
                onStart: null,
                onEnd: null,
                onComplete: null,
                onEvent: null,
              }),
              (r.AnimationState = function (t) {
                (this.data = t), (this.tracks = []), (this.events = []);
              }),
              (r.AnimationState.prototype = {
                onStart: null,
                onEnd: null,
                onComplete: null,
                onEvent: null,
                timeScale: 1,
                update: function (t) {
                  t *= this.timeScale;
                  for (var e = 0; e < this.tracks.length; e++) {
                    var i = this.tracks[e];
                    if (i) {
                      if (((i.time += t * i.timeScale), i.previous)) {
                        var r = t * i.previous.timeScale;
                        (i.previous.time += r), (i.mixTime += r);
                      }
                      var n = i.next;
                      n
                        ? ((n.time = i.lastTime - n.delay),
                          n.time >= 0 && this.setCurrent(e, n))
                        : !i.loop &&
                          i.lastTime >= i.endTime &&
                          this.clearTrack(e);
                    }
                  }
                },
                apply: function (t) {
                  for (var e = 0; e < this.tracks.length; e++) {
                    var i = this.tracks[e];
                    if (i) {
                      this.events.length = 0;
                      var r = i.time,
                        n = i.lastTime,
                        o = i.endTime,
                        s = i.loop;
                      !s && r > o && (r = o);
                      var a = i.previous;
                      if (a) {
                        var h = a.time;
                        !a.loop && h > a.endTime && (h = a.endTime),
                          a.animation.apply(t, h, h, a.loop, null);
                        var l = (i.mixTime / i.mixDuration) * i.mix;
                        l >= 1 && ((l = 1), (i.previous = null)),
                          i.animation.mix(t, i.lastTime, r, s, this.events, l);
                      } else
                        1 == i.mix
                          ? i.animation.apply(t, i.lastTime, r, s, this.events)
                          : i.animation.mix(
                              t,
                              i.lastTime,
                              r,
                              s,
                              this.events,
                              i.mix
                            );
                      for (var u = 0, c = this.events.length; c > u; u++) {
                        var d = this.events[u];
                        i.onEvent && i.onEvent(e, d),
                          this.onEvent && this.onEvent(e, d);
                      }
                      if (s ? n % o > r % o : o > n && r >= o) {
                        var p = Math.floor(r / o);
                        i.onComplete && i.onComplete(e, p),
                          this.onComplete && this.onComplete(e, p);
                      }
                      i.lastTime = i.time;
                    }
                  }
                },
                clearTracks: function () {
                  for (var t = 0, e = this.tracks.length; e > t; t++)
                    this.clearTrack(t);
                  this.tracks.length = 0;
                },
                clearTrack: function (t) {
                  if (!(t >= this.tracks.length)) {
                    var e = this.tracks[t];
                    e &&
                      (e.onEnd && e.onEnd(t),
                      this.onEnd && this.onEnd(t),
                      (this.tracks[t] = null));
                  }
                },
                _expandToIndex: function (t) {
                  if (t < this.tracks.length) return this.tracks[t];
                  for (; t >= this.tracks.length; ) this.tracks.push(null);
                  return null;
                },
                setCurrent: function (t, e) {
                  var i = this._expandToIndex(t);
                  if (i) {
                    var r = i.previous;
                    (i.previous = null),
                      i.onEnd && i.onEnd(t),
                      this.onEnd && this.onEnd(t),
                      (e.mixDuration = this.data.getMix(
                        i.animation,
                        e.animation
                      )),
                      e.mixDuration > 0 &&
                        ((e.mixTime = 0),
                        (e.previous =
                          r && i.mixTime / i.mixDuration < 0.5 ? r : i));
                  }
                  (this.tracks[t] = e),
                    e.onStart && e.onStart(t),
                    this.onStart && this.onStart(t);
                },
                setAnimationByName: function (t, e, i) {
                  var r = this.data.skeletonData.findAnimation(e);
                  if (!r) throw "Animation not found: " + e;
                  return this.setAnimation(t, r, i);
                },
                setAnimation: function (t, e, i) {
                  var n = new r.TrackEntry();
                  return (
                    (n.animation = e),
                    (n.loop = i),
                    (n.endTime = e.duration),
                    this.setCurrent(t, n),
                    n
                  );
                },
                addAnimationByName: function (t, e, i, r) {
                  var n = this.data.skeletonData.findAnimation(e);
                  if (!n) throw "Animation not found: " + e;
                  return this.addAnimation(t, n, i, r);
                },
                addAnimation: function (t, e, i, n) {
                  var o = new r.TrackEntry();
                  (o.animation = e), (o.loop = i), (o.endTime = e.duration);
                  var s = this._expandToIndex(t);
                  if (s) {
                    for (; s.next; ) s = s.next;
                    s.next = o;
                  } else this.tracks[t] = o;
                  return (
                    0 >= n &&
                      (s
                        ? (n += s.endTime - this.data.getMix(s.animation, e))
                        : (n = 0)),
                    (o.delay = n),
                    o
                  );
                },
                getCurrent: function (t) {
                  return t >= this.tracks.length ? null : this.tracks[t];
                },
              }),
              (r.SkeletonJsonParser = function (t) {
                this.attachmentLoader = t;
              }),
              (r.SkeletonJsonParser.prototype = {
                scale: 1,
                readSkeletonData: function (t, e) {
                  var i = new r.SkeletonData();
                  i.name = e;
                  var n = t.skeleton;
                  n &&
                    ((i.hash = n.hash),
                    (i.version = n.spine),
                    (i.width = n.width || 0),
                    (i.height = n.height || 0));
                  for (var o = t.bones, s = 0, a = o.length; a > s; s++) {
                    var h = o[s],
                      l = null;
                    if (h.parent && ((l = i.findBone(h.parent)), !l))
                      throw "Parent bone not found: " + h.parent;
                    var u = new r.BoneData(h.name, l);
                    (u.length = (h.length || 0) * this.scale),
                      (u.x = (h.x || 0) * this.scale),
                      (u.y = (h.y || 0) * this.scale),
                      (u.rotation = h.rotation || 0),
                      (u.scaleX = h.hasOwnProperty("scaleX") ? h.scaleX : 1),
                      (u.scaleY = h.hasOwnProperty("scaleY") ? h.scaleY : 1),
                      (u.inheritScale = h.hasOwnProperty("inheritScale")
                        ? h.inheritScale
                        : !0),
                      (u.inheritRotation = h.hasOwnProperty("inheritRotation")
                        ? h.inheritRotation
                        : !0),
                      i.bones.push(u);
                  }
                  var c = t.ik;
                  if (c)
                    for (var s = 0, a = c.length; a > s; s++) {
                      for (
                        var d = c[s],
                          p = new r.IkConstraintData(d.name),
                          o = d.bones,
                          f = 0,
                          m = o.length;
                        m > f;
                        f++
                      ) {
                        var v = i.findBone(o[f]);
                        if (!v) throw "IK bone not found: " + o[f];
                        p.bones.push(v);
                      }
                      if (((p.target = i.findBone(d.target)), !p.target))
                        throw "Target bone not found: " + d.target;
                      (p.bendDirection =
                        !d.hasOwnProperty("bendPositive") || d.bendPositive
                          ? 1
                          : -1),
                        (p.mix = d.hasOwnProperty("mix") ? d.mix : 1),
                        i.ikConstraints.push(p);
                    }
                  for (var g = t.slots, s = 0, a = g.length; a > s; s++) {
                    var y = g[s],
                      u = i.findBone(y.bone);
                    if (!u) throw "Slot bone not found: " + y.bone;
                    var x = new r.SlotData(y.name, u),
                      _ = y.color;
                    _ &&
                      ((x.r = this.toColor(_, 0)),
                      (x.g = this.toColor(_, 1)),
                      (x.b = this.toColor(_, 2)),
                      (x.a = this.toColor(_, 3))),
                      (x.attachmentName = y.attachment),
                      (x.additiveBlending = y.additive && "true" == y.additive),
                      i.slots.push(x);
                  }
                  var b = t.skins;
                  for (var w in b)
                    if (b.hasOwnProperty(w)) {
                      var T = b[w],
                        S = new r.Skin(w);
                      for (var E in T)
                        if (T.hasOwnProperty(E)) {
                          var A = i.findSlotIndex(E),
                            C = T[E];
                          for (var M in C)
                            if (C.hasOwnProperty(M)) {
                              var R = this.readAttachment(S, M, C[M]);
                              R && S.addAttachment(A, M, R);
                            }
                        }
                      i.skins.push(S),
                        "default" == S.name && (i.defaultSkin = S);
                    }
                  var P = t.events;
                  for (var O in P)
                    if (P.hasOwnProperty(O)) {
                      var D = P[O],
                        F = new r.EventData(O);
                      (F.intValue = D["int"] || 0),
                        (F.floatValue = D["float"] || 0),
                        (F.stringValue = D.string || null),
                        i.events.push(F);
                    }
                  var L = t.animations;
                  for (var k in L)
                    L.hasOwnProperty(k) && this.readAnimation(k, L[k], i);
                  return i;
                },
                readAttachment: function (t, e, i) {
                  e = i.name || e;
                  var n = r.AttachmentType[i.type || "region"],
                    o = i.path || e,
                    s = this.scale;
                  if (n == r.AttachmentType.region) {
                    var a = this.attachmentLoader.newRegionAttachment(t, e, o);
                    if (!a) return null;
                    (a.path = o),
                      (a.x = (i.x || 0) * s),
                      (a.y = (i.y || 0) * s),
                      (a.scaleX = i.hasOwnProperty("scaleX") ? i.scaleX : 1),
                      (a.scaleY = i.hasOwnProperty("scaleY") ? i.scaleY : 1),
                      (a.rotation = i.rotation || 0),
                      (a.width = (i.width || 0) * s),
                      (a.height = (i.height || 0) * s);
                    var h = i.color;
                    return (
                      h &&
                        ((a.r = this.toColor(h, 0)),
                        (a.g = this.toColor(h, 1)),
                        (a.b = this.toColor(h, 2)),
                        (a.a = this.toColor(h, 3))),
                      a.updateOffset(),
                      a
                    );
                  }
                  if (n == r.AttachmentType.mesh) {
                    var l = this.attachmentLoader.newMeshAttachment(t, e, o);
                    return l
                      ? ((l.path = o),
                        (l.vertices = this.getFloatArray(i, "vertices", s)),
                        (l.triangles = this.getIntArray(i, "triangles")),
                        (l.regionUVs = this.getFloatArray(i, "uvs", 1)),
                        l.updateUVs(),
                        (h = i.color),
                        h &&
                          ((l.r = this.toColor(h, 0)),
                          (l.g = this.toColor(h, 1)),
                          (l.b = this.toColor(h, 2)),
                          (l.a = this.toColor(h, 3))),
                        (l.hullLength = 2 * (i.hull || 0)),
                        i.edges && (l.edges = this.getIntArray(i, "edges")),
                        (l.width = (i.width || 0) * s),
                        (l.height = (i.height || 0) * s),
                        l)
                      : null;
                  }
                  if (n == r.AttachmentType.skinnedmesh) {
                    var l = this.attachmentLoader.newSkinnedMeshAttachment(
                      t,
                      e,
                      o
                    );
                    if (!l) return null;
                    l.path = o;
                    for (
                      var u = this.getFloatArray(i, "uvs", 1),
                        c = this.getFloatArray(i, "vertices", 1),
                        d = [],
                        p = [],
                        f = 0,
                        m = c.length;
                      m > f;

                    ) {
                      var v = 0 | c[f++];
                      p[p.length] = v;
                      for (var g = f + 4 * v; g > f; )
                        (p[p.length] = c[f]),
                          (d[d.length] = c[f + 1] * s),
                          (d[d.length] = c[f + 2] * s),
                          (d[d.length] = c[f + 3]),
                          (f += 4);
                    }
                    return (
                      (l.bones = p),
                      (l.weights = d),
                      (l.triangles = this.getIntArray(i, "triangles")),
                      (l.regionUVs = u),
                      l.updateUVs(),
                      (h = i.color),
                      h &&
                        ((l.r = this.toColor(h, 0)),
                        (l.g = this.toColor(h, 1)),
                        (l.b = this.toColor(h, 2)),
                        (l.a = this.toColor(h, 3))),
                      (l.hullLength = 2 * (i.hull || 0)),
                      i.edges && (l.edges = this.getIntArray(i, "edges")),
                      (l.width = (i.width || 0) * s),
                      (l.height = (i.height || 0) * s),
                      l
                    );
                  }
                  if (n == r.AttachmentType.boundingbox) {
                    for (
                      var y = this.attachmentLoader.newBoundingBoxAttachment(
                          t,
                          e
                        ),
                        c = i.vertices,
                        f = 0,
                        m = c.length;
                      m > f;
                      f++
                    )
                      y.vertices.push(c[f] * s);
                    return y;
                  }
                  throw "Unknown attachment type: " + n;
                },
                readAnimation: function (t, e, i) {
                  var n = [],
                    o = 0,
                    s = e.slots;
                  for (var a in s)
                    if (s.hasOwnProperty(a)) {
                      var h = s[a],
                        l = i.findSlotIndex(a);
                      for (var u in h)
                        if (h.hasOwnProperty(u)) {
                          var c = h[u];
                          if ("color" == u) {
                            var d = new r.ColorTimeline(c.length);
                            d.slotIndex = l;
                            for (var p = 0, f = 0, m = c.length; m > f; f++) {
                              var v = c[f],
                                g = v.color,
                                y = this.toColor(g, 0),
                                x = this.toColor(g, 1),
                                _ = this.toColor(g, 2),
                                b = this.toColor(g, 3);
                              d.setFrame(p, v.time, y, x, _, b),
                                this.readCurve(d, p, v),
                                p++;
                            }
                            n.push(d),
                              (o = Math.max(
                                o,
                                d.frames[5 * d.getFrameCount() - 5]
                              ));
                          } else {
                            if ("attachment" != u)
                              throw (
                                "Invalid timeline type for a slot: " +
                                u +
                                " (" +
                                a +
                                ")"
                              );
                            var d = new r.AttachmentTimeline(c.length);
                            d.slotIndex = l;
                            for (var p = 0, f = 0, m = c.length; m > f; f++) {
                              var v = c[f];
                              d.setFrame(p++, v.time, v.name);
                            }
                            n.push(d),
                              (o = Math.max(
                                o,
                                d.frames[d.getFrameCount() - 1]
                              ));
                          }
                        }
                    }
                  var w = e.bones;
                  for (var T in w)
                    if (w.hasOwnProperty(T)) {
                      var S = i.findBoneIndex(T);
                      if (-1 == S) throw "Bone not found: " + T;
                      var E = w[T];
                      for (var u in E)
                        if (E.hasOwnProperty(u)) {
                          var c = E[u];
                          if ("rotate" == u) {
                            var d = new r.RotateTimeline(c.length);
                            d.boneIndex = S;
                            for (var p = 0, f = 0, m = c.length; m > f; f++) {
                              var v = c[f];
                              d.setFrame(p, v.time, v.angle),
                                this.readCurve(d, p, v),
                                p++;
                            }
                            n.push(d),
                              (o = Math.max(
                                o,
                                d.frames[2 * d.getFrameCount() - 2]
                              ));
                          } else if ("translate" == u || "scale" == u) {
                            var d,
                              A = 1;
                            "scale" == u
                              ? (d = new r.ScaleTimeline(c.length))
                              : ((d = new r.TranslateTimeline(c.length)),
                                (A = this.scale)),
                              (d.boneIndex = S);
                            for (var p = 0, f = 0, m = c.length; m > f; f++) {
                              var v = c[f],
                                C = (v.x || 0) * A,
                                M = (v.y || 0) * A;
                              d.setFrame(p, v.time, C, M),
                                this.readCurve(d, p, v),
                                p++;
                            }
                            n.push(d),
                              (o = Math.max(
                                o,
                                d.frames[3 * d.getFrameCount() - 3]
                              ));
                          } else {
                            if ("flipX" != u && "flipY" != u)
                              throw (
                                "Invalid timeline type for a bone: " +
                                u +
                                " (" +
                                T +
                                ")"
                              );
                            var C = "flipX" == u,
                              d = C
                                ? new r.FlipXTimeline(c.length)
                                : new r.FlipYTimeline(c.length);
                            d.boneIndex = S;
                            for (
                              var R = C ? "x" : "y", p = 0, f = 0, m = c.length;
                              m > f;
                              f++
                            ) {
                              var v = c[f];
                              d.setFrame(p, v.time, v[R] || !1), p++;
                            }
                            n.push(d),
                              (o = Math.max(
                                o,
                                d.frames[2 * d.getFrameCount() - 2]
                              ));
                          }
                        }
                    }
                  var P = e.ik;
                  for (var O in P)
                    if (P.hasOwnProperty(O)) {
                      var D = i.findIkConstraint(O),
                        c = P[O],
                        d = new r.IkConstraintTimeline(c.length);
                      d.ikConstraintIndex = i.ikConstraints.indexOf(D);
                      for (var p = 0, f = 0, m = c.length; m > f; f++) {
                        var v = c[f],
                          F = v.hasOwnProperty("mix") ? v.mix : 1,
                          L =
                            !v.hasOwnProperty("bendPositive") || v.bendPositive
                              ? 1
                              : -1;
                        d.setFrame(p, v.time, F, L),
                          this.readCurve(d, p, v),
                          p++;
                      }
                      n.push(d),
                        (o = Math.max(o, d.frames[3 * d.frameCount - 3]));
                    }
                  var k = e.ffd;
                  for (var I in k) {
                    var B = i.findSkin(I),
                      h = k[I];
                    for (a in h) {
                      var l = i.findSlotIndex(a),
                        N = h[a];
                      for (var U in N) {
                        var c = N[U],
                          d = new r.FfdTimeline(c.length),
                          X = B.getAttachment(l, U);
                        if (!X) throw "FFD attachment not found: " + U;
                        (d.slotIndex = l), (d.attachment = X);
                        var j,
                          z = X.type == r.AttachmentType.mesh;
                        j = z ? X.vertices.length : (X.weights.length / 3) * 2;
                        for (var p = 0, f = 0, m = c.length; m > f; f++) {
                          var Y,
                            v = c[f];
                          if (v.vertices) {
                            var W = v.vertices,
                              Y = [];
                            Y.length = j;
                            var G = v.offset || 0,
                              H = W.length;
                            if (1 == this.scale)
                              for (var V = 0; H > V; V++) Y[V + G] = W[V];
                            else
                              for (var V = 0; H > V; V++)
                                Y[V + G] = W[V] * this.scale;
                            if (z)
                              for (
                                var q = X.vertices, V = 0, H = Y.length;
                                H > V;
                                V++
                              )
                                Y[V] += q[V];
                          } else
                            z ? (Y = X.vertices) : ((Y = []), (Y.length = j));
                          d.setFrame(p, v.time, Y),
                            this.readCurve(d, p, v),
                            p++;
                        }
                        (n[n.length] = d),
                          (o = Math.max(o, d.frames[d.frameCount - 1]));
                      }
                    }
                  }
                  var K = e.drawOrder;
                  if ((K || (K = e.draworder), K)) {
                    for (
                      var d = new r.DrawOrderTimeline(K.length),
                        Q = i.slots.length,
                        p = 0,
                        f = 0,
                        m = K.length;
                      m > f;
                      f++
                    ) {
                      var $ = K[f],
                        J = null;
                      if ($.offsets) {
                        (J = []), (J.length = Q);
                        for (var V = Q - 1; V >= 0; V--) J[V] = -1;
                        var Z = $.offsets,
                          te = [];
                        te.length = Q - Z.length;
                        for (
                          var ee = 0, ie = 0, V = 0, H = Z.length;
                          H > V;
                          V++
                        ) {
                          var re = Z[V],
                            l = i.findSlotIndex(re.slot);
                          if (-1 == l) throw "Slot not found: " + re.slot;
                          for (; ee != l; ) te[ie++] = ee++;
                          J[ee + re.offset] = ee++;
                        }
                        for (; Q > ee; ) te[ie++] = ee++;
                        for (var V = Q - 1; V >= 0; V--)
                          -1 == J[V] && (J[V] = te[--ie]);
                      }
                      d.setFrame(p++, $.time, J);
                    }
                    n.push(d),
                      (o = Math.max(o, d.frames[d.getFrameCount() - 1]));
                  }
                  var ne = e.events;
                  if (ne) {
                    for (
                      var d = new r.EventTimeline(ne.length),
                        p = 0,
                        f = 0,
                        m = ne.length;
                      m > f;
                      f++
                    ) {
                      var oe = ne[f],
                        se = i.findEvent(oe.name);
                      if (!se) throw "Event not found: " + oe.name;
                      var ae = new r.Event(se);
                      (ae.intValue = oe.hasOwnProperty("int")
                        ? oe["int"]
                        : se.intValue),
                        (ae.floatValue = oe.hasOwnProperty("float")
                          ? oe["float"]
                          : se.floatValue),
                        (ae.stringValue = oe.hasOwnProperty("string")
                          ? oe.string
                          : se.stringValue),
                        d.setFrame(p++, oe.time, ae);
                    }
                    n.push(d),
                      (o = Math.max(o, d.frames[d.getFrameCount() - 1]));
                  }
                  i.animations.push(new r.Animation(t, n, o));
                },
                readCurve: function (t, e, i) {
                  var r = i.curve;
                  r
                    ? "stepped" == r
                      ? t.curves.setStepped(e)
                      : r instanceof Array &&
                        t.curves.setCurve(e, r[0], r[1], r[2], r[3])
                    : t.curves.setLinear(e);
                },
                toColor: function (t, e) {
                  if (8 != t.length)
                    throw "Color hexidecimal length must be 8, recieved: " + t;
                  return parseInt(t.substring(2 * e, 2 * e + 2), 16) / 255;
                },
                getFloatArray: function (t, e, i) {
                  var n = t[e],
                    o = new r.Float32Array(n.length),
                    s = 0,
                    a = n.length;
                  if (1 == i) for (; a > s; s++) o[s] = n[s];
                  else for (; a > s; s++) o[s] = n[s] * i;
                  return o;
                },
                getIntArray: function (t, e) {
                  for (
                    var i = t[e],
                      n = new r.Uint16Array(i.length),
                      o = 0,
                      s = i.length;
                    s > o;
                    o++
                  )
                    n[o] = 0 | i[o];
                  return n;
                },
              }),
              (r.Atlas = function (t, e, n) {
                e && e.indexOf("/") !== e.length && (e += "/"),
                  (this.pages = []),
                  (this.regions = []),
                  (this.texturesLoading = 0);
                var o = new r.AtlasReader(t),
                  s = [];
                s.length = 4;
                for (var a = null; ; ) {
                  var h = o.readLine();
                  if (null === h) break;
                  if (((h = o.trim(h)), h.length))
                    if (a) {
                      var l = new r.AtlasRegion();
                      (l.name = h),
                        (l.page = a),
                        (l.rotate = "true" == o.readValue()),
                        o.readTuple(s);
                      var u = parseInt(s[0]),
                        c = parseInt(s[1]);
                      o.readTuple(s);
                      var d = parseInt(s[0]),
                        p = parseInt(s[1]);
                      (l.u = u / a.width),
                        (l.v = c / a.height),
                        l.rotate
                          ? ((l.u2 = (u + p) / a.width),
                            (l.v2 = (c + d) / a.height))
                          : ((l.u2 = (u + d) / a.width),
                            (l.v2 = (c + p) / a.height)),
                        (l.x = u),
                        (l.y = c),
                        (l.width = Math.abs(d)),
                        (l.height = Math.abs(p)),
                        4 == o.readTuple(s) &&
                          ((l.splits = [
                            parseInt(s[0]),
                            parseInt(s[1]),
                            parseInt(s[2]),
                            parseInt(s[3]),
                          ]),
                          4 == o.readTuple(s) &&
                            ((l.pads = [
                              parseInt(s[0]),
                              parseInt(s[1]),
                              parseInt(s[2]),
                              parseInt(s[3]),
                            ]),
                            o.readTuple(s))),
                        (l.originalWidth = parseInt(s[0])),
                        (l.originalHeight = parseInt(s[1])),
                        o.readTuple(s),
                        (l.offsetX = parseInt(s[0])),
                        (l.offsetY = parseInt(s[1])),
                        (l.index = parseInt(o.readValue())),
                        this.regions.push(l);
                    } else {
                      (a = new r.AtlasPage()),
                        (a.name = h),
                        2 == o.readTuple(s) &&
                          ((a.width = parseInt(s[0])),
                          (a.height = parseInt(s[1])),
                          o.readTuple(s)),
                        (a.format = r.Atlas.Format[s[0]]),
                        o.readTuple(s),
                        (a.minFilter = r.Atlas.TextureFilter[s[0]]),
                        (a.magFilter = r.Atlas.TextureFilter[s[1]]);
                      var f = o.readValue();
                      (a.uWrap = r.Atlas.TextureWrap.clampToEdge),
                        (a.vWrap = r.Atlas.TextureWrap.clampToEdge),
                        "x" == f
                          ? (a.uWrap = r.Atlas.TextureWrap.repeat)
                          : "y" == f
                          ? (a.vWrap = r.Atlas.TextureWrap.repeat)
                          : "xy" == f &&
                            (a.uWrap = a.vWrap = r.Atlas.TextureWrap.repeat),
                        (a.rendererObject = i.BaseTexture.fromImage(e + h, n)),
                        this.pages.push(a);
                    }
                  else a = null;
                }
              }),
              (r.Atlas.prototype = {
                findRegion: function (t) {
                  for (var e = this.regions, i = 0, r = e.length; r > i; i++)
                    if (e[i].name == t) return e[i];
                  return null;
                },
                dispose: function () {
                  for (var t = this.pages, e = 0, i = t.length; i > e; e++)
                    t[e].rendererObject.destroy(!0);
                },
                updateUVs: function (t) {
                  for (var e = this.regions, i = 0, r = e.length; r > i; i++) {
                    var n = e[i];
                    n.page == t &&
                      ((n.u = n.x / t.width),
                      (n.v = n.y / t.height),
                      n.rotate
                        ? ((n.u2 = (n.x + n.height) / t.width),
                          (n.v2 = (n.y + n.width) / t.height))
                        : ((n.u2 = (n.x + n.width) / t.width),
                          (n.v2 = (n.y + n.height) / t.height)));
                  }
                },
              }),
              (r.Atlas.Format = {
                alpha: 0,
                intensity: 1,
                luminanceAlpha: 2,
                rgb565: 3,
                rgba4444: 4,
                rgb888: 5,
                rgba8888: 6,
              }),
              (r.Atlas.TextureFilter = {
                nearest: 0,
                linear: 1,
                mipMap: 2,
                mipMapNearestNearest: 3,
                mipMapLinearNearest: 4,
                mipMapNearestLinear: 5,
                mipMapLinearLinear: 6,
              }),
              (r.Atlas.TextureWrap = {
                mirroredRepeat: 0,
                clampToEdge: 1,
                repeat: 2,
              }),
              (r.AtlasPage = function () {}),
              (r.AtlasPage.prototype = {
                name: null,
                format: null,
                minFilter: null,
                magFilter: null,
                uWrap: null,
                vWrap: null,
                rendererObject: null,
                width: 0,
                height: 0,
              }),
              (r.AtlasRegion = function () {}),
              (r.AtlasRegion.prototype = {
                page: null,
                name: null,
                x: 0,
                y: 0,
                width: 0,
                height: 0,
                u: 0,
                v: 0,
                u2: 0,
                v2: 0,
                offsetX: 0,
                offsetY: 0,
                originalWidth: 0,
                originalHeight: 0,
                index: 0,
                rotate: !1,
                splits: null,
                pads: null,
              }),
              (r.AtlasReader = function (t) {
                this.lines = t.split(/\r\n|\r|\n/);
              }),
              (r.AtlasReader.prototype = {
                index: 0,
                trim: function (t) {
                  return t.replace(/^\s+|\s+$/g, "");
                },
                readLine: function () {
                  return this.index >= this.lines.length
                    ? null
                    : this.lines[this.index++];
                },
                readValue: function () {
                  var t = this.readLine(),
                    e = t.indexOf(":");
                  if (-1 == e) throw "Invalid line: " + t;
                  return this.trim(t.substring(e + 1));
                },
                readTuple: function (t) {
                  var e = this.readLine(),
                    i = e.indexOf(":");
                  if (-1 == i) throw "Invalid line: " + e;
                  for (var r = 0, n = i + 1; 3 > r; r++) {
                    var o = e.indexOf(",", n);
                    if (-1 == o) break;
                    (t[r] = this.trim(e.substr(n, o - n))), (n = o + 1);
                  }
                  return (t[r] = this.trim(e.substring(n))), r + 1;
                },
              }),
              (r.AtlasAttachmentParser = function (t) {
                this.atlas = t;
              }),
              (r.AtlasAttachmentParser.prototype = {
                newRegionAttachment: function (t, e, i) {
                  var n = this.atlas.findRegion(i);
                  if (!n)
                    throw (
                      "Region not found in atlas: " +
                      i +
                      " (region attachment: " +
                      e +
                      ")"
                    );
                  var o = new r.RegionAttachment(e);
                  return (
                    (o.rendererObject = n),
                    o.setUVs(n.u, n.v, n.u2, n.v2, n.rotate),
                    (o.regionOffsetX = n.offsetX),
                    (o.regionOffsetY = n.offsetY),
                    (o.regionWidth = n.width),
                    (o.regionHeight = n.height),
                    (o.regionOriginalWidth = n.originalWidth),
                    (o.regionOriginalHeight = n.originalHeight),
                    o
                  );
                },
                newMeshAttachment: function (t, e, i) {
                  var n = this.atlas.findRegion(i);
                  if (!n)
                    throw (
                      "Region not found in atlas: " +
                      i +
                      " (mesh attachment: " +
                      e +
                      ")"
                    );
                  var o = new r.MeshAttachment(e);
                  return (
                    (o.rendererObject = n),
                    (o.regionU = n.u),
                    (o.regionV = n.v),
                    (o.regionU2 = n.u2),
                    (o.regionV2 = n.v2),
                    (o.regionRotate = n.rotate),
                    (o.regionOffsetX = n.offsetX),
                    (o.regionOffsetY = n.offsetY),
                    (o.regionWidth = n.width),
                    (o.regionHeight = n.height),
                    (o.regionOriginalWidth = n.originalWidth),
                    (o.regionOriginalHeight = n.originalHeight),
                    o
                  );
                },
                newSkinnedMeshAttachment: function (t, e, i) {
                  var n = this.atlas.findRegion(i);
                  if (!n)
                    throw (
                      "Region not found in atlas: " +
                      i +
                      " (skinned mesh attachment: " +
                      e +
                      ")"
                    );
                  var o = new r.SkinnedMeshAttachment(e);
                  return (
                    (o.rendererObject = n),
                    (o.regionU = n.u),
                    (o.regionV = n.v),
                    (o.regionU2 = n.u2),
                    (o.regionV2 = n.v2),
                    (o.regionRotate = n.rotate),
                    (o.regionOffsetX = n.offsetX),
                    (o.regionOffsetY = n.offsetY),
                    (o.regionWidth = n.width),
                    (o.regionHeight = n.height),
                    (o.regionOriginalWidth = n.originalWidth),
                    (o.regionOriginalHeight = n.originalHeight),
                    o
                  );
                },
                newBoundingBoxAttachment: function (t, e) {
                  return new r.BoundingBoxAttachment(e);
                },
              }),
              (r.SkeletonBounds = function () {
                (this.polygonPool = []),
                  (this.polygons = []),
                  (this.boundingBoxes = []);
              }),
              (r.SkeletonBounds.prototype = {
                minX: 0,
                minY: 0,
                maxX: 0,
                maxY: 0,
                update: function (t, e) {
                  var i = t.slots,
                    n = i.length,
                    o = t.x,
                    s = t.y,
                    a = this.boundingBoxes,
                    h = this.polygonPool,
                    l = this.polygons;
                  a.length = 0;
                  for (var u = 0, c = l.length; c > u; u++) h.push(l[u]);
                  l.length = 0;
                  for (var u = 0; n > u; u++) {
                    var d = i[u],
                      p = d.attachment;
                    if (p.type == r.AttachmentType.boundingbox) {
                      a.push(p);
                      var f,
                        m = h.length;
                      m > 0 ? ((f = h[m - 1]), h.splice(m - 1, 1)) : (f = []),
                        l.push(f),
                        (f.length = p.vertices.length),
                        p.computeWorldVertices(o, s, d.bone, f);
                    }
                  }
                  e && this.aabbCompute();
                },
                aabbCompute: function () {
                  for (
                    var t = this.polygons,
                      e = Number.MAX_VALUE,
                      i = Number.MAX_VALUE,
                      r = Number.MIN_VALUE,
                      n = Number.MIN_VALUE,
                      o = 0,
                      s = t.length;
                    s > o;
                    o++
                  )
                    for (var a = t[o], h = 0, l = a.length; l > h; h += 2) {
                      var u = a[h],
                        c = a[h + 1];
                      (e = Math.min(e, u)),
                        (i = Math.min(i, c)),
                        (r = Math.max(r, u)),
                        (n = Math.max(n, c));
                    }
                  (this.minX = e),
                    (this.minY = i),
                    (this.maxX = r),
                    (this.maxY = n);
                },
                aabbContainsPoint: function (t, e) {
                  return (
                    t >= this.minX &&
                    t <= this.maxX &&
                    e >= this.minY &&
                    e <= this.maxY
                  );
                },
                aabbIntersectsSegment: function (t, e, i, r) {
                  var n = this.minX,
                    o = this.minY,
                    s = this.maxX,
                    a = this.maxY;
                  if (
                    (n >= t && n >= i) ||
                    (o >= e && o >= r) ||
                    (t >= s && i >= s) ||
                    (e >= a && r >= a)
                  )
                    return !1;
                  var h = (r - e) / (i - t),
                    l = h * (n - t) + e;
                  if (l > o && a > l) return !0;
                  if (((l = h * (s - t) + e), l > o && a > l)) return !0;
                  var u = (o - e) / h + t;
                  return u > n && s > u
                    ? !0
                    : ((u = (a - e) / h + t), u > n && s > u ? !0 : !1);
                },
                aabbIntersectsSkeleton: function (t) {
                  return (
                    this.minX < t.maxX &&
                    this.maxX > t.minX &&
                    this.minY < t.maxY &&
                    this.maxY > t.minY
                  );
                },
                containsPoint: function (t, e) {
                  for (var i = this.polygons, r = 0, n = i.length; n > r; r++)
                    if (this.polygonContainsPoint(i[r], t, e))
                      return this.boundingBoxes[r];
                  return null;
                },
                intersectsSegment: function (t, e, i, r) {
                  for (var n = this.polygons, o = 0, s = n.length; s > o; o++)
                    if (n[o].intersectsSegment(t, e, i, r))
                      return this.boundingBoxes[o];
                  return null;
                },
                polygonContainsPoint: function (t, e, i) {
                  for (
                    var r = t.length, n = r - 2, o = !1, s = 0;
                    r > s;
                    s += 2
                  ) {
                    var a = t[s + 1],
                      h = t[n + 1];
                    if ((i > a && h >= i) || (i > h && a >= i)) {
                      var l = t[s];
                      l + ((i - a) / (h - a)) * (t[n] - l) < e && (o = !o);
                    }
                    n = s;
                  }
                  return o;
                },
                polygonIntersectsSegment: function (t, e, i, r, n) {
                  for (
                    var o = t.length,
                      s = e - r,
                      a = i - n,
                      h = e * n - i * r,
                      l = t[o - 2],
                      u = t[o - 1],
                      c = 0;
                    o > c;
                    c += 2
                  ) {
                    var d = t[c],
                      p = t[c + 1],
                      f = l * p - u * d,
                      m = l - d,
                      v = u - p,
                      g = s * v - a * m,
                      y = (h * m - s * f) / g;
                    if (
                      ((y >= l && d >= y) || (y >= d && l >= y)) &&
                      ((y >= e && r >= y) || (y >= r && e >= y))
                    ) {
                      var x = (h * v - a * f) / g;
                      if (
                        ((x >= u && p >= x) || (x >= p && u >= x)) &&
                        ((x >= i && n >= x) || (x >= n && i >= x))
                      )
                        return !0;
                    }
                    (l = d), (u = p);
                  }
                  return !1;
                },
                getPolygon: function (t) {
                  var e = this.boundingBoxes.indexOf(t);
                  return -1 == e ? null : this.polygons[e];
                },
                getWidth: function () {
                  return this.maxX - this.minX;
                },
                getHeight: function () {
                  return this.maxY - this.minY;
                },
              });
          },
          { "../core": 20 },
        ],
        115: [
          function (t, e) {
            e.exports = { Spine: t("./Spine"), runtime: t("./SpineRuntime") };
          },
          { "./Spine": 113, "./SpineRuntime": 114 },
        ],
        116: [
          function (t, e) {
            function i(t, e) {
              r.Container.call(this),
                (this.textWidth = 0),
                (this.textHeight = 0),
                (this._glyphs = []),
                (this._style = {
                  tint: e.tint,
                  align: e.align,
                  fontName: null,
                  fontSize: 0,
                }),
                (this.font = e.font),
                (this._text = t),
                (this.maxWidth = 0),
                (this.dirty = !1),
                this.updateText();
            }
            var r = t("../core");
            (i.prototype = Object.create(r.Container.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              Object.defineProperties(i.prototype, {
                tint: {
                  get: function () {
                    return this._style.tint;
                  },
                  set: function (t) {
                    (this._style.tint =
                      "number" == typeof t && t >= 0 ? t : 16777215),
                      (this.dirty = !0);
                  },
                },
                align: {
                  get: function () {
                    return this._style.align;
                  },
                  set: function (t) {
                    (this._style.align = t), (this.dirty = !0);
                  },
                },
                font: {
                  get: function () {
                    return this._style.font;
                  },
                  set: function (t) {
                    "string" == typeof t
                      ? ((t = t.split(" ")),
                        (this._style.fontName = t.slice(1).join(" ")),
                        (this._style.fontSize =
                          t.length >= 2
                            ? parseInt(t[0], 10)
                            : i.fonts[this.fontName].size))
                      : ((this._style.fontName = t.name),
                        (this._style.fontSize =
                          "number" == typeof t.size
                            ? t.size
                            : parseInt(t.size, 10))),
                      (this.dirty = !0);
                  },
                },
                text: {
                  get: function () {
                    return this._text;
                  },
                  set: function (t) {
                    (this._text = t), (this.dirty = !0);
                  },
                },
              }),
              (i.prototype.updateText = function () {
                for (
                  var t = i.fonts[this.fontName],
                    e = new r.math.Point(),
                    n = null,
                    o = [],
                    s = 0,
                    a = 0,
                    h = [],
                    l = 0,
                    u = this.fontSize / t.size,
                    c = -1,
                    d = 0;
                  d < this.text.length;
                  d++
                ) {
                  var p = this.text.charCodeAt(d);
                  if (
                    ((c = /(\s)/.test(this.text.charAt(d)) ? d : c),
                    /(?:\r\n|\r|\n)/.test(this.text.charAt(d)))
                  )
                    h.push(s),
                      (a = Math.max(a, s)),
                      l++,
                      (e.x = 0),
                      (e.y += t.lineHeight),
                      (n = null);
                  else if (
                    -1 !== c &&
                    this.maxWidth > 0 &&
                    e.x * u > this.maxWidth
                  )
                    o.splice(c, d - c),
                      (d = c),
                      (c = -1),
                      h.push(s),
                      (a = Math.max(a, s)),
                      l++,
                      (e.x = 0),
                      (e.y += t.lineHeight),
                      (n = null);
                  else {
                    var f = t.chars[p];
                    f &&
                      (n && f.kerning[n] && (e.x += f.kerning[n]),
                      o.push({
                        texture: f.texture,
                        line: l,
                        charCode: p,
                        position: new r.math.Point(
                          e.x + f.xOffset,
                          e.y + f.yOffset
                        ),
                      }),
                      (s = e.x + (f.texture.width + f.xOffset)),
                      (e.x += f.xAdvance),
                      (n = p));
                  }
                }
                h.push(s), (a = Math.max(a, s));
                var m = [];
                for (d = 0; l >= d; d++) {
                  var v = 0;
                  "right" === this.style.align
                    ? (v = a - h[d])
                    : "center" === this.style.align && (v = (a - h[d]) / 2),
                    m.push(v);
                }
                var g = o.length,
                  y = this.tint;
                for (d = 0; g > d; d++) {
                  var x = this._glyphs[d];
                  x
                    ? (x.texture = o[d].texture)
                    : ((x = new r.Sprite(o[d].texture)), this._glyphs.push(x)),
                    (x.position.x = (o[d].position.x + m[o[d].line]) * u),
                    (x.position.y = o[d].position.y * u),
                    (x.scale.x = x.scale.y = u),
                    (x.tint = y),
                    x.parent || this.addChild(x);
                }
                for (d = g; d < this._glyphs.length; ++d)
                  this.removeChild(this._glyphs[d]);
                (this.textWidth = a * u),
                  (this.textHeight = (e.y + t.lineHeight) * u);
              }),
              (i.prototype.updateTransform = function () {
                this.dirty && (this.updateText(), (this.dirty = !1)),
                  this.containerUpdateTransform();
              }),
              (i.fonts = {});
          },
          { "../core": 20 },
        ],
        117: [
          function (t, e) {
            function i(t, e, i) {
              (this.canvas = document.createElement("canvas")),
                (this.context = this.canvas.getContext("2d")),
                (this.resolution = i || r.RESOLUTION),
                (this._text = null),
                (this._style = null),
                r.Sprite.call(this, r.Texture.fromCanvas(this.canvas)),
                (this.text = t),
                (this.style = e);
            }
            var r = t("../core");
            (i.prototype = Object.create(r.Sprite.prototype)),
              (i.prototype.constructor = i),
              (e.exports = i),
              (i.fontPropertiesCache = {}),
              (i.fontPropertiesCanvas = document.createElement("canvas")),
              (i.fontPropertiesContext =
                i.fontPropertiesCanvas.getContext("2d")),
              Object.defineProperties(i.prototype, {
                width: {
                  get: function () {
                    return (
                      this.dirty && this.updateText(),
                      this.scale.x * this._texture._frame.width
                    );
                  },
                  set: function (t) {
                    (this.scale.x = t / this._texture._frame.width),
                      (this._width = t);
                  },
                },
                height: {
                  get: function () {
                    return (
                      this.dirty && this.updateText(),
                      this.scale.y * this._texture._frame.height
                    );
                  },
                  set: function (t) {
                    (this.scale.y = t / this._texture._frame.height),
                      (this._height = t);
                  },
                },
                style: {
                  get: function () {
                    return this._style;
                  },
                  set: function (t) {
                    (t = t || {}),
                      (t.font = t.font || "bold 20pt Arial"),
                      (t.fill = t.fill || "black"),
                      (t.align = t.align || "left"),
                      (t.stroke = t.stroke || "black"),
                      (t.strokeThickness = t.strokeThickness || 0),
                      (t.wordWrap = t.wordWrap || !1),
                      (t.wordWrapWidth = t.wordWrapWidth || 100),
                      (t.dropShadow = t.dropShadow || !1),
                      (t.dropShadowColor = t.dropShadowColor || "#000000"),
                      (t.dropShadowAngle = t.dropShadowAngle || Math.PI / 6),
                      (t.dropShadowDistance = t.dropShadowDistance || 5),
                      (this._style = t),
                      (this.dirty = !0);
                  },
                },
                text: {
                  get: function () {
                    return this._text;
                  },
                  set: function (t) {
                    (t = t.toString() || " "),
                      this._text !== t && ((this._text = t), (this.dirty = !0));
                  },
                },
              }),
              (i.prototype.updateText = function () {
                var t = this._style;
                this.context.font = t.font;
                for (
                  var e = t.wordWrap ? this.wordWrap(this._text) : this._text,
                    i = e.split(/(?:\r\n|\r|\n)/),
                    r = new Array(i.length),
                    n = 0,
                    o = this.determineFontProperties(t.font),
                    s = 0;
                  s < i.length;
                  s++
                ) {
                  var a = this.context.measureText(i[s]).width;
                  (r[s] = a), (n = Math.max(n, a));
                }
                var h = n + t.strokeThickness;
                t.dropShadow && (h += t.dropShadowDistance),
                  (this.canvas.width =
                    (h + this.context.lineWidth) * this.resolution);
                var l = o.fontSize + t.strokeThickness,
                  u = l * i.length;
                t.dropShadow && (u += t.dropShadowDistance),
                  (this.canvas.height = u * this.resolution),
                  this.context.scale(this.resolution, this.resolution),
                  navigator.isCocoonJS &&
                    this.context.clearRect(
                      0,
                      0,
                      this.canvas.width,
                      this.canvas.height
                    ),
                  (this.context.font = t.font),
                  (this.context.strokeStyle = t.stroke),
                  (this.context.lineWidth = t.strokeThickness),
                  (this.context.textBaseline = "alphabetic");
                var c, d;
                if (t.dropShadow) {
                  this.context.fillStyle = t.dropShadowColor;
                  var p = Math.cos(t.dropShadowAngle) * t.dropShadowDistance,
                    f = Math.sin(t.dropShadowAngle) * t.dropShadowDistance;
                  for (s = 0; s < i.length; s++)
                    (c = t.strokeThickness / 2),
                      (d = t.strokeThickness / 2 + s * l + o.ascent),
                      "right" === t.align
                        ? (c += n - r[s])
                        : "center" === t.align && (c += (n - r[s]) / 2),
                      t.fill && this.context.fillText(i[s], c + p, d + f);
                }
                for (this.context.fillStyle = t.fill, s = 0; s < i.length; s++)
                  (c = t.strokeThickness / 2),
                    (d = t.strokeThickness / 2 + s * l + o.ascent),
                    "right" === t.align
                      ? (c += n - r[s])
                      : "center" === t.align && (c += (n - r[s]) / 2),
                    t.stroke &&
                      t.strokeThickness &&
                      this.context.strokeText(i[s], c, d),
                    t.fill && this.context.fillText(i[s], c, d);
                this.updateTexture();
              }),
              (i.prototype.updateTexture = function () {
                (this._texture.baseTexture.hasLoaded = !0),
                  (this._texture.baseTexture.resolution = this.resolution),
                  (this._texture.baseTexture.width =
                    this.canvas.width / this.resolution),
                  (this._texture.baseTexture.height =
                    this.canvas.height / this.resolution),
                  (this._texture.crop.width = this._texture._frame.width =
                    this.canvas.width / this.resolution),
                  (this._texture.crop.height = this._texture._frame.height =
                    this.canvas.height / this.resolution),
                  (this._width = this.canvas.width / this.resolution),
                  (this._height = this.canvas.height / this.resolution),
                  this._texture.update(),
                  (this.dirty = !1);
              }),
              (i.prototype.renderWebGL = function (t) {
                this.dirty &&
                  ((this.resolution = t.resolution), this.updateText()),
                  r.Sprite.prototype.renderWebGL.call(this, t);
              }),
              (i.prototype.renderCanvas = function (t) {
                this.dirty &&
                  ((this.resolution = t.resolution), this.updateText()),
                  r.Sprite.prototype.renderCanvas.call(this, t);
              }),
              (i.prototype.determineFontProperties = function (t) {
                var e = i.fontPropertiesCache[t];
                if (!e) {
                  e = {};
                  var r = i.fontPropertiesCanvas,
                    n = i.fontPropertiesContext;
                  n.font = t;
                  var o = Math.ceil(n.measureText("|Mq").width),
                    s = Math.ceil(n.measureText("M").width),
                    a = 2 * s;
                  (s = (1.4 * s) | 0),
                    (r.width = o),
                    (r.height = a),
                    (n.fillStyle = "#f00"),
                    n.fillRect(0, 0, o, a),
                    (n.font = t),
                    (n.textBaseline = "alphabetic"),
                    (n.fillStyle = "#000"),
                    n.fillText("|M�q", 0, s);
                  var h,
                    l,
                    u = n.getImageData(0, 0, o, a).data,
                    c = u.length,
                    d = 4 * o,
                    p = 0,
                    f = !1;
                  for (h = 0; s > h; h++) {
                    for (l = 0; d > l; l += 4)
                      if (255 !== u[p + l]) {
                        f = !0;
                        break;
                      }
                    if (f) break;
                    p += d;
                  }
                  for (e.ascent = s - h, p = c - d, f = !1, h = a; h > s; h--) {
                    for (l = 0; d > l; l += 4)
                      if (255 !== u[p + l]) {
                        f = !0;
                        break;
                      }
                    if (f) break;
                    p -= d;
                  }
                  (e.descent = h - s),
                    (e.descent += 6),
                    (e.fontSize = e.ascent + e.descent),
                    (i.fontPropertiesCache[t] = e);
                }
                return e;
              }),
              (i.prototype.wordWrap = function (t) {
                for (
                  var e = "",
                    i = t.split("\n"),
                    r = this._style.wordWrapWidth,
                    n = 0;
                  n < i.length;
                  n++
                ) {
                  for (
                    var o = r, s = i[n].split(" "), a = 0;
                    a < s.length;
                    a++
                  ) {
                    var h = this.context.measureText(s[a]).width,
                      l = h + this.context.measureText(" ").width;
                    0 === a || l > o
                      ? (a > 0 && (e += "\n"), (e += s[a]), (o = r - h))
                      : ((o -= l), (e += " " + s[a]));
                  }
                  n < i.length - 1 && (e += "\n");
                }
                return e;
              }),
              (i.prototype.getBounds = function (t) {
                return (
                  this.dirty && this.updateText(),
                  r.Sprite.prototype.getBounds.call(this, t)
                );
              }),
              (i.prototype.destroy = function (t) {
                (this.context = null),
                  (this.canvas = null),
                  this._texture.destroy(void 0 === t ? !0 : t);
              });
          },
          { "../core": 20 },
        ],
        118: [
          function (t, e) {
            e.exports = { Text: t("./Text"), BitmapText: t("./BitmapText") };
          },
          { "./BitmapText": 116, "./Text": 117 },
        ],
      },
      {},
      [1]
    )(1);
  }),
  (function (t) {
    function e(t, e, i, r, n) {
      (this._listener = e),
        (this._isOnce = i),
        (this.context = r),
        (this._signal = t),
        (this._priority = n || 0);
    }
    function i(t, e) {
      if ("function" != typeof t)
        throw new Error(
          "listener is a required param of {fn}() and should be a Function.".replace(
            "{fn}",
            e
          )
        );
    }
    function r() {
      (this._bindings = []), (this._prevParams = null);
      var t = this;
      this.dispatch = function () {
        r.prototype.dispatch.apply(t, arguments);
      };
    }
    (e.prototype = {
      active: !0,
      params: null,
      execute: function (t) {
        var e, i;
        return (
          this.active &&
            this._listener &&
            ((i = this.params ? this.params.concat(t) : t),
            (e = this._listener.apply(this.context, i)),
            this._isOnce && this.detach()),
          e
        );
      },
      detach: function () {
        return this.isBound()
          ? this._signal.remove(this._listener, this.context)
          : null;
      },
      isBound: function () {
        return !!this._signal && !!this._listener;
      },
      isOnce: function () {
        return this._isOnce;
      },
      getListener: function () {
        return this._listener;
      },
      getSignal: function () {
        return this._signal;
      },
      _destroy: function () {
        delete this._signal, delete this._listener, delete this.context;
      },
      toString: function () {
        return (
          "[SignalBinding isOnce:" +
          this._isOnce +
          ", isBound:" +
          this.isBound() +
          ", active:" +
          this.active +
          "]"
        );
      },
    }),
      (r.prototype = {
        VERSION: "1.0.0",
        memorize: !1,
        _shouldPropagate: !0,
        active: !0,
        _registerListener: function (t, i, r, n) {
          var o,
            s = this._indexOfListener(t, r);
          if (-1 !== s) {
            if (((o = this._bindings[s]), o.isOnce() !== i))
              throw new Error(
                "You cannot add" +
                  (i ? "" : "Once") +
                  "() then add" +
                  (i ? "Once" : "") +
                  "() the same listener without removing the relationship first."
              );
          } else (o = new e(this, t, i, r, n)), this._addBinding(o);
          return (
            this.memorize && this._prevParams && o.execute(this._prevParams), o
          );
        },
        _addBinding: function (t) {
          var e = this._bindings.length;
          do --e;
          while (
            this._bindings[e] &&
            t._priority <= this._bindings[e]._priority
          );
          this._bindings.splice(e + 1, 0, t);
        },
        _indexOfListener: function (t, e) {
          for (var i, r = this._bindings.length; r--; )
            if (((i = this._bindings[r]), i._listener === t && i.context === e))
              return r;
          return -1;
        },
        has: function (t, e) {
          return -1 !== this._indexOfListener(t, e);
        },
        add: function (t, e, r) {
          return i(t, "add"), this._registerListener(t, !1, e, r);
        },
        addOnce: function (t, e, r) {
          return i(t, "addOnce"), this._registerListener(t, !0, e, r);
        },
        remove: function (t, e) {
          i(t, "remove");
          var r = this._indexOfListener(t, e);
          return (
            -1 !== r &&
              (this._bindings[r]._destroy(), this._bindings.splice(r, 1)),
            t
          );
        },
        removeAll: function () {
          for (var t = this._bindings.length; t--; )
            this._bindings[t]._destroy();
          this._bindings.length = 0;
        },
        getNumListeners: function () {
          return this._bindings.length;
        },
        halt: function () {
          this._shouldPropagate = !1;
        },
        dispatch: function () {
          if (this.active) {
            var t,
              e = Array.prototype.slice.call(arguments),
              i = this._bindings.length;
            if ((this.memorize && (this._prevParams = e), i)) {
              (t = this._bindings.slice()), (this._shouldPropagate = !0);
              do i--;
              while (t[i] && this._shouldPropagate && t[i].execute(e) !== !1);
            }
          }
        },
        forget: function () {
          this._prevParams = null;
        },
        dispose: function () {
          this.removeAll(), delete this._bindings, delete this._prevParams;
        },
        toString: function () {
          return (
            "[Signal active:" +
            this.active +
            " numListeners:" +
            this.getNumListeners() +
            "]"
          );
        },
      });
    var n = r;
    (n.Signal = r),
      "function" == typeof define && define.amd
        ? define("signals", [], function () {
            return n;
          })
        : "undefined" != typeof module && module.exports
        ? (module.exports = n)
        : (t.signals = n);
  })(this),
  define(
    "com/fido/loader/Cache",
    ["require", "exports", "module"],
    function (t, e, i) {
      var r = function () {
        (this._json = {}), (this._text = {});
      };
      (r.prototype.addJson = function (t, e) {
        this._json[e] = t;
      }),
        (r.prototype.addText = function (t, e) {
          this._text[e] = t;
        }),
        (r.prototype.getJson = function (t) {
          return this._json[t] ? this._json[t] : void 0;
        }),
        (r.prototype.getText = function (t) {
          return this._text[t] ? this._text[t] : void 0;
        }),
        (i.exports = new r());
    }
  ),
  define(
    "com/fido/loader/Loader",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "signals",
      "com/fido/loader/Cache",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n = t("signals"),
        o = t("com/fido/loader/Cache"),
        s = function () {
          (this.crossdomain = !1),
            window.XDomainRequest && this.crossdomain
              ? ((this.ajaxRequest = new window.XDomainRequest()),
                (this.ajaxRequest.timeout = 3e3),
                (this.ajaxRequest.onerror = function () {}),
                (this.ajaxRequest.ontimeout = function () {}),
                (this.ajaxRequest.onprogress = function () {}))
              : window.XMLHttpRequest &&
                (this.ajaxRequest = new window.XMLHttpRequest()),
            (this.ajaxRequest.onload = this._onFileLoaded.bind(this)),
            (this.ajaxRequest.onreadystatechange = function () {}),
            (this.fileCount = 0),
            (this.filesToLoad = []),
            (this.fontsToLoad = []),
            (this.pixiAssetsToLoad = []),
            (this.soundsToLoad = []),
            (this.customToLoad = []),
            (this.onComplete = new n()),
            (this.onProgress = new n());
        };
      (s.prototype.addFonts = function (t) {
        this.fontsToLoad = this.fontsToLoad.concat(t);
      }),
        (s.prototype.addText = function (t, e) {
          var i = { url: t, id: e, type: s.TEXT };
          this.filesToLoad.push(i);
        }),
        (s.prototype.addJson = function (t, e) {
          var i = { url: t, id: e, type: s.JSON };
          this.filesToLoad.push(i);
        }),
        (s.prototype.addPixiAssets = function (t) {
          this.pixiAssetsToLoad = this.pixiAssetsToLoad.concat(t);
        }),
        (s.prototype.addCSS = function (t) {
          var e = document.createElement("link");
          (e.type = "text/css"),
            (e.rel = "stylesheet"),
            (e.href = t),
            document.getElementsByTagName("head")[0].appendChild(e);
        }),
        (s.prototype.addCustom = function (t) {
          var e = { object: t, type: s.CUSTOM };
          this.filesToLoad.push(e);
        }),
        (s.prototype.load = function () {
          this._loadFonts();
        }),
        (s.prototype._loadFiles = function () {
          (this.fileCount = 0),
            this.filesToLoad.length
              ? this._loadNextFile()
              : this._loadPixiAssets();
        }),
        (s.prototype._loadNextFile = function () {
          var t = this.filesToLoad[this.fileCount];
          t.type === s.CUSTOM
            ? (t.object.onLoaded.addOnce(this._onFileLoaded, this),
              t.object.load())
            : (this.ajaxRequest.open("GET", t.url, !0),
              this.ajaxRequest.send());
        }),
        (s.prototype._onFileLoaded = function () {
          var t = this.filesToLoad[this.fileCount];
          if (t.type === s.CUSTOM);
          else if (200 !== this.ajaxRequest.status);
          else
            switch (t.type) {
              case s.TEXT:
                var e = this.ajaxRequest.responseText;
                o.addText(e, t.id);
                break;
              case s.JSON:
                var i = JSON.parse(this.ajaxRequest.responseText);
                o.addJson(i, t.id);
            }
          this.fileCount++,
            this._onProgress(),
            this.fileCount === this.filesToLoad.length
              ? this._loadPixiAssets()
              : this._loadNextFile();
        }),
        (s.prototype._loadPixiAssets = function () {
          return 0 === this.pixiAssetsToLoad.length
            ? void this._onComplete()
            : ((this.pixiAssetLoader = new r.loaders.Loader()),
              this.pixiAssetLoader.addList(this.pixiAssetsToLoad),
              void this.pixiAssetLoader.load(
                function () {
                  this._onProgress(), this._onComplete();
                }.bind(this)
              ));
        }),
        (s.prototype._loadFonts = function () {
          return 0 === this.fontsToLoad.length
            ? void this._loadFiles()
            : ((WebFontConfig = {
                google: { families: this.fontsToLoad },
                active: function () {
                  this._loadFiles();
                }.bind(this),
              }),
              void (function () {
                var t = document.createElement("script");
                (t.src =
                  ("https:" == document.location.protocol ? "https" : "http") +
                  "://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"),
                  (t.type = "text/javascript"),
                  (t.async = "true");
                var e = document.getElementsByTagName("script")[0];
                e.parentNode.insertBefore(t, e);
              })());
        }),
        (s.prototype._onComplete = function () {
          this.onComplete.dispatch();
        }),
        (s.prototype._onProgress = function () {
          var t =
            (this.filesToLoad.length + this.pixiAssetsToLoad.length,
            this.fileCount);
          this.pixiAssetLoader &&
            (t +=
              this.pixiAssetsToLoad.length - this.pixiAssetLoader.loadCount),
            this.onProgress.dispatch(1);
        }),
        (s.TEXT = 0),
        (s.JSON = 1),
        (s.CUSTOM = 2),
        (i.exports = s);
    }
  ),
  define(
    "com/fido/app/transitions/AlphaTransition",
    ["require", "exports", "module"],
    function (t, e, i) {
      (AlphaTransition = function () {}),
        (AlphaTransition.constructor = AlphaTransition),
        (AlphaTransition.prototype.begin = function (t, e, i) {
          (this.screenManager = t),
            (this.currentScreen = e),
            (this.nextScreen = i),
            this.currentScreen
              ? (this.currentScreen.onHide && this.currentScreen.onHide(),
                TweenLite.to(this.currentScreen, 0.4, {
                  alpha: 0,
                  onComplete: this.onFadeout.bind(this),
                }))
              : this.onFadeout();
        }),
        (AlphaTransition.prototype.onFadeout = function () {
          this.currentScreen &&
            (this.currentScreen.onHidden && this.currentScreen.onHidden(),
            this.screenManager.container.removeChild(this.currentScreen),
            (this.currentScreen.alpha = 1)),
            (this.nextScreen.alpha = 0),
            this.nextScreen.onShow && this.nextScreen.onShow(),
            this.nextScreen.resize &&
              this.nextScreen.resize(
                this.screenManager.w,
                this.screenManager.h
              ),
            TweenLite.to(this.nextScreen, 0.4, {
              alpha: 1,
              onComplete: this.onFadein.bind(this),
            }),
            this.screenManager.container.addChild(this.nextScreen);
        }),
        (AlphaTransition.prototype.onFadein = function () {
          this.nextScreen.onShown && this.nextScreen.onShown(),
            this.screenManager.onTransitionComplete();
        }),
        (AlphaTransition.prototype.resize = function (t, e) {
          (this.w = t), (this.h = e);
        }),
        (i.exports = AlphaTransition);
    }
  ),
  define(
    "com/fido/app/ScreenManager",
    ["require", "exports", "module", "PIXI", "./transitions/AlphaTransition"],
    function (t, e, i) {
      var r = t("PIXI"),
        n = t("./transitions/AlphaTransition"),
        o = function (t, e, i) {
          (this.container = t || new r.DisplayObjectContainer()),
            (this.screens = {}),
            this.currentScreen,
            (this.fading = !1),
            (this.w = e || 400),
            (this.h = i || 400),
            (this.history = []),
            (this.defaultTransition = new n()),
            (this.transition = this.defaultTransition),
            (this.active = !1);
        };
      (o.constructor = o),
        (o.prototype.gotoScreenByID = function (t, e) {
          var i = this.screens[t];
          if (!i) throw new Error("screen not found with id : ", t);
          this.gotoScreen(i, e);
        }),
        (o.prototype.addScreen = function (t, e) {
          (this.screens[e] = t), (t._screenID = e), (t.screenManager = this);
        }),
        (o.prototype.goBack = function () {
          this.history.pop();
          var t = this.history.pop();
          t && this.gotoScreen(t);
        }),
        (o.prototype.getScreenId = function (t) {
          for (var e in this.screens) if (this.screens[e] === t) return e;
          return null;
        }),
        (o.prototype.gotoScreen = function (t) {
          if (
            this.currentScreen !== t &&
            (this.history.push(t), (this.nextScreen = t), !this.active)
          ) {
            (this.active = !0),
              (this.transition = t.transition || this.defaultTransition),
              this.transition.onResize &&
                this.transition.onResize(this.w, this.h);
            var e = this.currentScreen;
            this.nextScreen &&
              this.nextScreen.resize &&
              this.nextScreen.resize(this.w, this.h),
              (this.currentScreen = t),
              this.transition.begin(this, e, this.nextScreen);
          }
        }),
        (o.prototype.onTransitionComplete = function () {
          (this.active = !1),
            this.currentScreen != this.nextScreen &&
              this.gotoScreen(this.nextScreen);
        }),
        (o.prototype.resize = function (t, e) {
          (this.w = t),
            (this.h = e),
            this.transition.onResize && this.transition.onResize(t, e),
            this.currentScreen &&
              this.currentScreen.resize &&
              this.currentScreen.resize(t, e);
        }),
        (i.exports = o);
    }
  ),
  define(
    "com/fido/system/Ticker",
    ["require", "exports", "module", "signals"],
    function (t, e, i) {
      var r = t("signals"),
        n = function () {
          (this.onUpdate = new r()),
            (this.updateBind = this.update.bind(this)),
            (this.active = !1),
            (this.deltaTime = 1),
            (this.timeElapsed = 0),
            (this.lastTime = 0),
            (this.speed = 1);
        };
      (n.prototype.start = function () {
        this.active ||
          ((this.active = !0), requestAnimationFrame(this.updateBind));
      }),
        (n.prototype.stop = function () {
          this.active && (this.active = !1);
        }),
        (n.prototype.update = function () {
          if (this.active) {
            requestAnimationFrame(this.updateBind);
            var t = new Date().getTime(),
              e = t - this.lastTime;
            e > 100 && (e = 100),
              (this.deltaTime = 0.06 * e),
              (this.deltaTime *= this.speed),
              this.onUpdate.dispatch(this.deltaTime),
              (this.lastTime = t);
          }
        }),
        (n.prototype.add = function (t, e) {
          this.onUpdate.add(t, e);
        }),
        (n.prototype.remove = function (t, e) {
          this.onUpdate.remove(t, e);
        }),
        (n.instance = new n()),
        (i.exports = n);
    }
  ),
  define(
    "com/fido/system/Device",
    ["require", "exports", "module"],
    function (t, e, i) {
      (Device = function () {
        (this.arora = !1),
          (this.chrome = !1),
          (this.epiphany = !1),
          (this.firefox = !1),
          (this.mobileSafari = !1),
          (this.ie = !1),
          (this.ieVersion = 0),
          (this.midori = !1),
          (this.opera = !1),
          (this.safari = !1),
          (this.webApp = !1),
          (this.cocoonJS = !1),
          (this.android = !1),
          (this.chromeOS = !1),
          (this.iOS = !1),
          (this.linux = !1),
          (this.macOS = !1),
          (this.windows = !1),
          (this.desktop = !1),
          (this.pixelRatio = 0),
          (this.iPhone = !1),
          (this.iPhone4 = !1),
          (this.iPad = !1),
          (this.blob = !1),
          (this.canvas = !1),
          (this.localStorage = !1),
          (this.file = !1),
          (this.fileSystem = !1),
          (this.webGL = !1),
          (this.worker = !1),
          (this.audioData = !1),
          (this.webAudio = !1),
          (this.ogg = !1),
          (this.opus = !1),
          (this.mp3 = !1),
          (this.wav = !1),
          (this.m4a = !1),
          (this.webm = !1);
        var t = navigator.userAgent;
        this._checkBrowser(t),
          this._checkOS(t),
          this._checkDevice(t),
          this._checkAudio(),
          this._checkFeatures(),
          this._checkIsMobile();
      }),
        (Device.prototype._checkBrowser = function (t) {
          /Arora/.test(t)
            ? (this.arora = !0)
            : /Chrome/.test(t)
            ? (this.chrome = !0)
            : /Epiphany/.test(t)
            ? (this.epiphany = !0)
            : /Firefox/.test(t)
            ? (this.firefox = !0)
            : /Mobile Safari/.test(t)
            ? (this.mobileSafari = !0)
            : /MSIE (\d+\.\d+);/.test(t) ||
              navigator.userAgent.match(/Trident.*rv[ :]*11\./)
            ? ((this.ie = !0), (this.ieVersion = parseInt(RegExp.$1, 10)))
            : /Midori/.test(t)
            ? (this.midori = !0)
            : /Opera/.test(t)
            ? (this.opera = !0)
            : /Safari/.test(t) && (this.safari = !0),
            navigator.standalone && (this.webApp = !0),
            navigator.isCocoonJS && (this.cocoonJS = !0);
        }),
        (Device.prototype._checkOS = function (t) {
          /Android/.test(t)
            ? (this.android = !0)
            : /CrOS/.test(t)
            ? (this.chromeOS = !0)
            : /iP[ao]d|iPhone/i.test(t)
            ? ((this.iOS = !0),
              (this.iOS_version =
                parseFloat(
                  (
                    "" +
                    (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(
                      navigator.userAgent
                    ) || [0, ""])[1]
                  )
                    .replace("undefined", "3_2")
                    .replace("_", ".")
                    .replace("_", "")
                ) || !1))
            : /Linux/.test(t)
            ? (this.linux = !0)
            : /Mac OS/.test(t)
            ? (this.macOS = !0)
            : /Windows/.test(t) && (this.windows = !0),
            (this.windows || this.macOS || this.linux) && (this.desktop = !0);
        }),
        (Device.prototype._checkDevice = function () {
          (this.pixelRatio = window.devicePixelRatio || 1),
            (this.iPhone =
              -1 !== navigator.userAgent.toLowerCase().indexOf("iphone")),
            (this.iPhone4 = 2 === this.pixelRatio && this.iPhone),
            (this.iPad =
              -1 !== navigator.userAgent.toLowerCase().indexOf("ipad"));
        }),
        (Device.prototype._checkFeatures = function () {
          "undefined" != typeof window.Blob && (this.blob = !0),
            (this.canvas = !!window.CanvasRenderingContext2D);
          try {
            this.localStorage = !!localStorage.getItem;
          } catch (t) {
            this.localStorage = !1;
          }
          (this.file = !!(
            window.File &&
            window.FileReader &&
            window.FileList &&
            window.Blob
          )),
            (this.fileSystem = !!window.requestFileSystem),
            (this.webGL = (function () {
              try {
                var t = document.createElement("canvas");
                return (
                  !!window.WebGLRenderingContext &&
                  (t.getContext("webgl") || t.getContext("experimental-webgl"))
                );
              } catch (e) {
                return !1;
              }
            })()),
            (this.android || this.ie) && (this.webGL = !1),
            (this.worker = !!window.Worker),
            ("ontouchstart" in document.documentElement ||
              window.navigator.msPointerEnabled) &&
              (this.touch = !0);
        }),
        (Device.prototype._checkAudio = function () {
          (this.audioData = !!window.Audio),
            (this.webaudio = !(
              !window.webkitAudioContext && !window.AudioContext
            ));
          var t = document.createElement("audio"),
            e = !1;
          try {
            (e = !!t.canPlayType) &&
              (t
                .canPlayType('audio/ogg; codecs="vorbis"')
                .replace(/^no$/, "") && (this.ogg = !0),
              t.canPlayType("audio/mpeg;").replace(/^no$/, "") &&
                (this.mp3 = !0),
              t.canPlayType('audio/wav; codecs="1"').replace(/^no$/, "") &&
                (this.wav = !0),
              (t.canPlayType("audio/x-m4a;") ||
                t.canPlayType("audio/aac;").replace(/^no$/, "")) &&
                (this.m4a = !0));
          } catch (i) {}
        }),
        (Device.prototype._checkIsMobile = function () {
          var t = !1;
          !(function (e) {
            (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(
              e
            ) ||
              /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(
                e.substr(0, 4)
              )) &&
              (t = !0);
          })(navigator.userAgent || navigator.vendor || window.opera),
            (this.isMobile = t);
        }),
        (Device.prototype.getInfo = function () {
          var t = "DEVICE OUTPUT\n\n";
          return (
            (t += "---\n"),
            (t += "Browser Info :: \n"),
            (t += "Arora : " + this.arora + "\n"),
            (t += "Chrome : " + this.chrome + "\n"),
            (t += "Epiphany : " + this.epiphany + "\n"),
            (t += "Firefox : " + this.firefox + "\n"),
            (t += "Mobile Safari : " + this.mobileSafari + "\n"),
            (t += "IE : " + this.ie),
            (t += this.ie ? " (Version " + this.ieVersion + ")\n" : "\n"),
            (t += "Midori : " + this.midori + "\n"),
            (t += "Opera : " + this.opera + "\n"),
            (t += "Safari : " + this.safari + "\n"),
            (t += "Web App : " + this.webApp + "\n"),
            (t += "CocoonJS : " + this.cocoonJS + "\n"),
            (t += "Android : " + this.android + "\n"),
            (t += "---\n"),
            (t += "Operating System :: \n"),
            (t += "Chrome OS : " + this.chromeOS + "\n"),
            (t += "iOS : " + this.iOS + "\n"),
            (t += "Linux : " + this.linux + "\n"),
            (t += "Mac OS : " + this.macOS + "\n"),
            (t += "Windows : " + this.windows + "\n"),
            (t += "Desktop : " + this.desktop + "\n"),
            (t += "---\n"),
            (t += "Device Type : \n"),
            (t += "Pixel Ratio : " + this.pixelRatio + "\n"),
            (t += "iPhone : " + this.iPhone + "\n"),
            (t += "iPhone 4 : " + this.iPhone4 + "\n"),
            (t += "iPad : " + this.iPad + "\n"),
            (t += "---\n"),
            (t += "Features :: \n"),
            (t += "Blob : " + this.blob + "\n"),
            (t += "Canvas : " + this.canvas + "\n"),
            (t += "LocalStorage : " + this.localStorage + "\n"),
            (t += "File : " + this.file + "\n"),
            (t += "File System : " + this.fileSystem + "\n"),
            (t += "WebGL : " + this.webGL + "\n"),
            (t += "Workers : " + this.worker + "\n"),
            (t += "---\n"),
            (t += "Audio :: \n"),
            (t += "AudioData : " + this.audioData + "\n"),
            (t += "WebAudio : " + this.webAudio + "\n"),
            (t += "Supports .ogg : " + this.ogg + "\n"),
            (t += "Supports Opus : " + this.opus + "\n"),
            (t += "Supports .mp3 : " + this.mp3 + "\n"),
            (t += "Supports .wav : " + this.wav + "\n"),
            (t += "Supports .m4a : " + this.m4a + "\n"),
            (t += "Supports .webm : " + this.webm)
          );
        }),
        (Device.instance = new Device()),
        (i.exports = Device);
    }
  ),
  define(
    "com/fido/utils/FrameWait",
    ["require", "exports", "module"],
    function (t, e, i) {
      var r = function () {
        (this.updateBind = this.update.bind(this)), (this.waits = []);
      };
      (r.prototype.wait = function (t, e) {
        var i = { callback: t, count: e || 2 };
        this.waits.push(i), requestAnimationFrame(this.updateBind);
      }),
        (r.prototype.update = function () {
          for (var t = this.waits.length - 1; t >= 0; t--) {
            var e = this.waits[t];
            e.count--, e.count <= 0 && (e.callback(), this.waits.splice(t, 1));
          }
          this.waits.length > 0 && requestAnimationFrame(this.updateBind);
        }),
        (i.exports = new r());
    }
  ),
  define(
    "com/fido/app/LoaderScreen",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/system/Ticker",
      "com/fido/utils/FrameWait",
      "signals",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n = t("com/fido/system/Ticker"),
        o = t("com/fido/utils/FrameWait"),
        s = t("signals"),
        a = function (t) {
          r.DisplayObjectContainer.call(this),
            (this.app = t),
            (this.easeLoad = 0),
            (this.targetLoad = 0),
            (this.onReady = new s()),
            (this.onComplete = new s()),
            (this.bar = new r.Sprite()),
            this.initLoader();
        };
      (a.prototype = Object.create(r.DisplayObjectContainer.prototype)),
        (a.prototype.initLoader = function () {
          n.instance.add(this.update, this),
            this.resize(this.w, this.h),
            o.wait(this.showLoader.bind(this));
        }),
        (a.prototype.showLoader = function () {
          this.onReady.dispatch();
        }),
        (a.prototype.update = function () {
          (this.easeLoad += 0.3 * (this.targetLoad - this.easeLoad)),
            this.easeLoad > 0.99 &&
              ((this.easeLoad = 1),
              n.instance.remove(this.update, this),
              this.onComplete.dispatch()),
            (this.bar.scale.x = this.easeLoad);
        }),
        (a.prototype.updateProgress = function (t) {
          this.targetLoad = t;
        }),
        (a.prototype.onHide = function () {
          n.instance.remove(this.update, this);
        }),
        (a.prototype.resize = function (t, e) {
          (this.w = t),
            (this.h = e),
            this.barBg &&
              ((this.barBg.scale.x = t / 100), (this.barBg.y = e / 2 - 50));
        }),
        (i.exports = a);
    }
  ),
  define(
    "com/fido/app/OrientationManager",
    ["require", "exports", "module", "com/fido/system/Ticker"],
    function (t, e, i) {
      var r = t("com/fido/system/Ticker"),
        n = function (t) {
          (this.mode = t),
            (this.rotateScreen = new Image()),
            (this.rotateScreen.src = ASSET_URL + "img/rotate-device.png"),
            (this.rotateScreen.style.position = "absolute"),
            (this.rotateScreen.style.top = "0"),
            (this.rotateScreen.style.left = "0"),
            (this.rotateScreen.style.zIndex = 1e7),
            (this.rotateScreen.style.display = "none"),
            (this.rotateScreen.width = 446),
            (this.rotateScreen.height = 288),
            document.body.appendChild(this.rotateScreen),
            (this.supportsOrientationChange = "onorientationchange" in window),
            this.supportsOrientationChange &&
              window.addEventListener(
                "orientationchange",
                this.checkOrientation.bind(this),
                !1
              );
        };
      (n.constructor = n),
        (n.prototype.checkOrientation = function () {
          90 === window.orientation || -90 === window.orientation
            ? (r.instance.stop(), (this.rotateScreen.style.display = "block"))
            : (r.instance.start(), (this.rotateScreen.style.display = "none"));
        }),
        (n.prototype.check = function (t, e) {
          var i = 0 === this.mode ? !(e > t) : e > t,
            n = t / 892,
            o = e / 576,
            s = Math.max(n, o);
          (this.rotateScreen.width = 892 * s),
            (this.rotateScreen.height = 576 * s),
            (this.rotateScreen.style.left =
              t / 2 - this.rotateScreen.width / 2 + "px"),
            (this.rotateScreen.style.top =
              e / 2 - this.rotateScreen.height / 2 + "px"),
            this.supportsOrientationChange ||
              (i
                ? (r.instance.stop(),
                  (this.rotateScreen.style.display = "block"))
                : (r.instance.start(),
                  (this.rotateScreen.style.display = "none")));
        }),
        (i.exports = n);
    }
  ),
  define(
    "com/fido/app/App",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/loader/Loader",
      "com/fido/app/ScreenManager",
      "com/fido/system/Ticker",
      "com/fido/system/Device",
      "com/fido/app/LoaderScreen",
      "com/fido/app/OrientationManager",
      "signals",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n = t("com/fido/loader/Loader"),
        o = t("com/fido/app/ScreenManager"),
        s = t("com/fido/system/Ticker"),
        a = t("com/fido/system/Device"),
        h = t("com/fido/app/LoaderScreen"),
        l = t("com/fido/app/OrientationManager"),
        u = t("signals"),
        c = function (t) {
          (t = t || c.defaultOptions), (this.options = {});
          for (var e in c.defaultOptions)
            this.options[e] = t[e] || c.defaultOptions[e];
          this.setupPixi(),
            s.instance.start(),
            s.instance.add(this.update, this),
            (this.screenManager = new o(null, 300, 300)),
            (this.loader = new n()),
            (this.onReady = new u()),
            this.options.orientationMode !== c.orientationModes.BOTH &&
              (this.orientationManager = new l(this.options.orientationMode)),
            this.stage.addChild(this.screenManager.container),
            (this.active = !0);
        };
      (c.prototype.setupPixi = function () {
        var t = this.options;
        (r.utils.sayHello = function () {}),
          t.forceCanvas || (a.instance.android && !a.instance.chrome)
            ? ((this.renderer = new r.CanvasRenderer(t.width, t.height)),
              (this.renderer.clearBeforeRender = !1))
            : (this.renderer = r.autoDetectRenderer(t.width, t.height, {
                backgroundColor: 1,
              })),
          (window.WEBGL = r.isWebGL = this.renderer instanceof r.WebGLRenderer),
          (this.view = this.renderer.view),
          (this.stage = new r.Stage(t.backgroundColor)),
          (this.view.style.position = "absolute"),
          (r.stage = this.stage);
      }),
        (c.prototype.update = function () {
          this.renderer.render(this.stage);
        }),
        (c.prototype.startup = function () {
          (this.loaderScreen = new this.options.loaderScreen(this)),
            this.loaderScreen.onReady.addOnce(this.onLoaderScreenReady, this),
            this.loaderScreen.onComplete.addOnce(
              this.onLoaderScreenComplete,
              this
            ),
            this.screenManager.addScreen(this.loaderScreen, "loader"),
            this.screenManager.gotoScreenByID("loader");
        }),
        (c.prototype.onLoaderScreenReady = function () {
          this.loader.onComplete.addOnce(this.onAssetsLoaded, this),
            this.loader.onProgress.add(this.onProgresss, this),
            this.loader.load();
        }),
        (c.prototype.onAssetsLoaded = function () {}),
        (c.prototype.onProgresss = function (t) {
          this.loaderScreen.updateProgress(t);
        }),
        (c.prototype.onLoaderScreenComplete = function () {
          this.onReady.dispatch();
        }),
        (c.prototype.resize = function (t, e) {
          this.orientationManager && this.orientationManager.check(t, e),
            this.options.resizeMode === c.resizeModes.DEFUALT
              ? (this.renderer.resize(t, e),
                (this.view.style.width = "auto"),
                (this.view.style.height = "auto"))
              : this.this.options.resizeMode ===
                  c.resizeModes.CSS_RESIZE_PRESERVE_RATIO ||
                (this.options.resizeMode === c.resizeModes.CSS_RESIZE &&
                  ((this.view.style.width = t + "px"),
                  (this.view.style.height = e + "px")));
        }),
        (c.resizeModes = {
          DEFUALT: 0,
          CSS_RESIZE_PRESERVE_RATIO: 1,
          CSS_RESIZE: 2,
        }),
        (c.orientationModes = { LANDSCAPE: 0, PORTRAIT: 1, BOTH: 2 }),
        (c.defaultOptions = {
          width: 800,
          height: 600,
          forceCanvas: !1,
          backgroundColor: 16777215,
          resizeMode: c.resizeModes.DEFUALT,
          orientationMode: c.orientationModes.LANDSCAPE,
          loaderScreen: h,
        }),
        (i.exports = c);
    }
  ),
  define(
    "com/fido/system/VisibilityChecker",
    ["require", "exports", "module", "signals"],
    function (t, e, i) {
      var r = t("signals"),
        n = function () {
          "undefined" != typeof document.hidden
            ? ((this.hidden = "hidden"),
              (this.visibilityChange = "visibilitychange"))
            : "undefined" != typeof document.mozHidden
            ? ((this.hidden = "mozHidden"),
              (this.visibilityChange = "mozvisibilitychange"))
            : "undefined" != typeof document.msHidden
            ? ((this.hidden = "msHidden"),
              (this.visibilityChange = "msvisibilitychange"))
            : "undefined" != typeof document.webkitHidden &&
              ((this.hidden = "webkitHidden"),
              (this.visibilityChange = "webkitvisibilitychange")),
            (this.onHide = new r()),
            (this.onShow = new r()),
            this.init();
        };
      (n.prototype.handleVisibilityChange = function () {
        document[this.hidden] ? this.onHide.dispatch() : this.onShow.dispatch();
      }),
        (n.prototype.init = function () {
          document.addEventListener(
            this.visibilityChange,
            this.handleVisibilityChange.bind(this),
            !1
          );
        }),
        (i.exports = new n());
    }
  ),
  define(
    "com/fido/sound/SoundManager",
    [
      "require",
      "exports",
      "module",
      "signals",
      "com/fido/system/VisibilityChecker",
    ],
    function (t, e, i) {
      var r = t("signals"),
        n = t("com/fido/system/VisibilityChecker"),
        o = function () {
          (this.disabled = !1),
            (this.preload = !0),
            (this.sounds = {}),
            (this.groups = {}),
            (this.globalVolume = 1),
            (this.isMuted = !1),
            (this.onMuteToggle = new r());
        };
      (o.prototype.addSound = function (t, e, i) {
        if (!this.disabled && !this.sounds[e]) {
          i = i || {};
          var r = new Howl({
            urls: [t + ".mp3", t + ".ogg"],
            autoplay: i.autoplay || !1,
            loop: i.loop || !1,
            volume: i.volume || 1,
          });
          (r.realVolume = i.volume || 1), (this.sounds[e] = r);
        }
      }),
        (o.prototype.addGroup = function (t, e) {
          if (!this.disabled && !this.groups[e]) {
            var i = { index: 0, type: 0, sounds: t };
            this.groups[e] = i;
          }
        }),
        (o.prototype.play = function (t) {
          this.disabled || this.sounds[t].play();
        }),
        (o.prototype.playGroup = function (t) {
          if (!this.disabled) {
            var e = this.groups[t],
              i = (Math.random() * e.sounds.length) | 0;
            this.sounds[e.sounds[i]].play();
          }
        }),
        (o.prototype.setVolume = function (t, e) {
          if (!this.disabled) {
            var i = this.sounds[t];
            (i.realVolume = e), i.volume(e * this.globalVolume);
          }
        }),
        (o.prototype.stop = function (t) {
          this.disabled || this.sounds[t].stop();
        }),
        (o.prototype.setPlaybackSpeed = function (t, e) {
          if (!this.disabled) {
            var i = this.sounds[t];
            i._playbackSpeed = e;
            var r = "music" == t ? 0 : 1;
            i._webAudio &&
              Howler._howls[r]._audioNode[0] &&
              (Howler._howls[r]._audioNode[0].bufferSource.playbackRate.value =
                e);
          }
        }),
        (o.prototype.getPlaybackSpeed = function (t) {
          if (!this.disabled) {
            var e = this.sounds[t];
            return e._playbackSpeed || 1;
          }
        }),
        (o.prototype.setGlobalVolume = function (t) {
          this.globalVolume = t;
          for (var e in this.sounds) {
            var i = this.sounds[e];
            i.volume(i.realVolume * t);
          }
        }),
        (o.prototype.mute = function () {
          (this.isMuted = !0),
            this.setGlobalVolume(0),
            this.onMuteToggle.dispatch(!0);
        }),
        (o.prototype.unmute = function () {
          (this.isMuted = !1),
            this.setGlobalVolume(1),
            this.onMuteToggle.dispatch(!1);
        }),
        (o.prototype.check = function () {
          this.lastSeen = Date.now();
          var t = function () {
            (lastSeen = Date.now()), setTimeout(t, 50);
          };
          t();
          var i = document.getElementById("music");
          i.addEventListener(
            "timeupdate",
            function () {
              Date.now() - e.lastSeen > 100 && this.pause();
            },
            !1
          );
        }),
        (o.sfx = new o()),
        (o.music = new o()),
        (o.sfx.disabled = !Howler.usingWebAudio),
        n.onHide.add(Howler.mute, Howler),
        n.onShow.add(Howler.unmute, Howler),
        (i.exports = o);
    }
  ),
  define(
    "com/fido/ui/buttons/Button",
    ["require", "exports", "module", "signals"],
    function (t, e, i) {
      var r = t("signals"),
        n = function (t) {
          if (!t) throw "FIDO: Button view must not be undefined";
          (this.view = t),
            (this.onPress = new r()),
            (this.onDown = new r()),
            (this.onUp = new r()),
            (this.view.interactive = !0),
            (this.view.buttonMode = !0),
            (this.view.mousedown = this.view.touchstart =
              this.onDown.dispatch.bind(this, this)),
            (this.view.mouseup = this.view.touchend =
              this.onUp.dispatch.bind(this, this)),
            (this.view.click = this.view.tap =
              this.onPress.dispatch.bind(this, this));
        };
      (n.constructor = n), (i.exports = n);
    }
  ),
  define(
    "com/fido/utils/ThreeSlice",
    ["require", "exports", "module", "PIXI"],
    function (t, e, i) {
      var r = t("PIXI"),
        n = function (t, e, i) {
          (this.left = new r.Sprite(t)),
            (this.middle = new r.Sprite(e)),
            (this.right = new r.Sprite(i)),
            r.DisplayObjectContainer.call(this),
            this.addChild(this.left),
            this.addChild(this.middle),
            this.addChild(this.right);
        };
      (n.prototype = Object.create(r.DisplayObjectContainer.prototype)),
        Object.defineProperty(n.prototype, "width", {
          get: function () {
            return this._width;
          },
          set: function (t) {
            (this._width = t),
              (this.left.position.x = 0),
              (this.middle.position.x = this.left.width),
              (this.middle.width = t - (this.left.width + this.right.width)),
              (this.right.position.x =
                this.middle.position.x + this.middle.width - 1);
          },
        }),
        (n.fromFrames = function (t, e, i) {
          return new n(
            r.Texture.fromFrame(t),
            r.Texture.fromFrame(e),
            r.Texture.fromFrame(i)
          );
        }),
        (i.exports = n);
    }
  ),
  define(
    "com/nebulon/app/buttons/AabButton",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/ui/buttons/Button",
      "com/fido/utils/ThreeSlice",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n = t("com/fido/ui/buttons/Button"),
        o = t("com/fido/utils/ThreeSlice"),
        s = function (t) {
          (this.label = new r.Text(t, { fill: "#FFFFFF" })),
            (this.label.x = 23),
            (this.label.y = 32);
          var e = this.createBackground(this.label.width);
          e.addChild(this.label), n.call(this, e);
        };
      (s.prototype = Object.create(n.prototype)),
        (s.prototype.createBackground = function (t) {
          var e = o.fromFrames(
              "3_slice_left_frame.png",
              "3_slice_mid_frame.png",
              "3_slice_right_frame.png"
            ),
            i = new r.Graphics().beginFill(3516639).drawRect(0, 0, 100, 71);
          e.addChildAt(i, 0),
            (e.width = Math.max(t + 40, 90)),
            (i.scale.x = (e.width - 14) / 100),
            (i.position.x = 10),
            (i.position.y = 11);
          var n = !0;
          return (
            n &&
              ((this.rollover = r.Sprite.fromFrame(
                "3_slice_halftone_rollover.png"
              )),
              (this.rollover.width = 2 * e.width),
              (this.rollover.height = 71),
              (this.rollover.y = 10),
              (this.rollover.x = 2 * -e.width),
              e.addChildAt(this.rollover, 1),
              (this.rolloverMask = new r.Graphics()
                .beginFill(16763904)
                .drawRect(0, 0, 100, 71)),
              (this.rolloverMask.position.x = 10),
              (this.rolloverMask.position.y = 11),
              (this.rolloverMask.scale.x = i.scale.x),
              (this.rollover.mask = this.rolloverMask),
              e.addChild(this.rolloverMask),
              (e.mouseover = this.onMouseOver.bind(this)),
              (e.mouseout = this.onMouseOut.bind(this)),
              (e.touchstart = this.onMouseOver.bind(this)),
              (e.touchend = e.touchendoutside = this.onMouseOut.bind(this))),
            (e.hitArea = new r.Rectangle(0, 0, Math.max(t + 40, 90), 90)),
            e
          );
        }),
        (s.prototype.onMouseOver = function () {
          TweenLite.to(this.rollover.position, 0.5, { x: 0 });
        }),
        (s.prototype.onMouseOut = function () {
          TweenLite.to(this.rollover.position, 0.5, {
            x: 2 * -this.view.width,
          });
        }),
        (i.exports = s);
    }
  ),
  define(
    "com/nebulon/app/buttons/BaseAabButton",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/ui/buttons/Button",
      "com/fido/utils/ThreeSlice",
      "com/fido/system/Ticker",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n = t("com/fido/ui/buttons/Button"),
        o = t("com/fido/utils/ThreeSlice"),
        s =
          (t("com/fido/system/Ticker"),
          function (t) {
            n.call(this, t);
          });
      (s.prototype = Object.create(n.prototype)),
        (s.prototype.createBackground = function (t, e) {
          (e = e || 1), (t /= e);
          var i = o.fromFrames(
              "3_slice_left_frame.png",
              "3_slice_mid_frame.png",
              "3_slice_right_frame.png"
            ),
            n = new r.Graphics().beginFill(3516639).drawRect(0, 0, 100, 71);
          i.addChildAt(n, 0),
            (i.width = Math.max(t + 40, 90)),
            (n.scale.x = (i.width - 14) / 100),
            (n.position.x = 10),
            (n.position.y = 11);
          return (
            (this.blueBg = n),
            i.scale.set(e),
            (i.pivot.x = i.width / 2),
            (i.pivot.y = 45),
            (this.bg = i),
            i
          );
        }),
        (s.prototype.activateDefaultRollover = function () {
          (this.rollover = r.Sprite.fromFrame("3_slice_halftone_rollover.png")),
            (this.rollover.width = 2 * this.bg.width),
            (this.rollover.height = 71),
            (this.rollover.y = 10),
            (this.rollover.x = 2 * -this.bg.width),
            this.bg.addChildAt(this.rollover, 1),
            (this.rolloverMask = new r.Graphics()
              .beginFill(16763904)
              .drawRect(0, 0, 100, 71)),
            (this.rolloverMask.position.x = 10),
            (this.rolloverMask.position.y = 11),
            (this.rolloverMask.scale.x = this.blueBg.scale.x),
            (this.rollover.mask = this.rolloverMask),
            this.bg.addChild(this.rolloverMask),
            (this.view.mouseover = this.onMouseOver.bind(this)),
            (this.view.mouseout = this.onMouseOut.bind(this)),
            (this.view.touchstart = this.onMouseOver.bind(this)),
            (this.view.touchend = this.view.touchendoutside =
              this.onMouseOut.bind(this)),
            (this.count = 0),
            (this.scale = 1),
            (this.intensity = 0.1),
            (this.defaultScale = 1),
            (this.overScale = 1.1);
        }),
        (s.prototype.toggleOn = function () {
          TweenLite.to(this.rollover.position, 0, { x: 0 }),
            (this.view.interactive = !1);
        }),
        (s.prototype.toggleOff = function () {
          TweenLite.to(this.rollover.position, 0, { x: 2 * -this.bg.width }),
            (this.view.interactive = !0);
        }),
        (s.prototype.onMouseOver = function () {
          TweenLite.to(this.rollover.position, 0.5, { x: 0 }),
            TweenLite.to(this.view.scale, 0.5, {
              x: this.overScale,
              y: this.overScale,
              ease: Elastic.easeOut,
            }),
            TweenLite.to(this.view, 0.75, {
              rotation: 0.1 * (Math.random() - 0.5),
              ease: Elastic.easeOut,
            });
        }),
        (s.prototype.onMouseOut = function () {
          TweenLite.to(this.rollover.position, 0.5, { x: 2 * -this.bg.width }),
            TweenLite.to(this.view.scale, 0.5, {
              x: this.defaultScale,
              y: this.defaultScale,
              ease: Elastic.easeOut,
            }),
            TweenLite.to(this.view, 0.75, {
              rotation: 0,
              ease: Elastic.easeOut,
            });
        }),
        (i.exports = s);
    }
  ),
  define(
    "com/nebulon/app/buttons/AabLabelButton",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "./BaseAabButton",
      "com/fido/sound/SoundManager",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n = t("./BaseAabButton"),
        o =
          (t("com/fido/sound/SoundManager"),
          function (t, e) {
            (this.label = new r.Sprite.fromFrame(t)),
              this.label.anchor.set(0.5),
              e && (this.label.x = -e / 2 + this.label.width / 2 + 5),
              (e = e || this.label.width + 10);
            var i = 0.7;
            this.createBackground(e, i);
            var o = new r.DisplayObjectContainer();
            o.addChild(this.bg);
            var s = e + 20;
            (o.hitArea = new r.Rectangle(-s / 2, (-90 * i) / 2, s, 90 * i)),
              o.addChild(this.label),
              n.call(this, o),
              (o.mousedown = o.touchstart = this.onTouch.bind(this)),
              this.activateDefaultRollover();
          });
      (o.prototype = Object.create(n.prototype)),
        (o.prototype.onTouch = function () {}),
        (i.exports = o);
    }
  ),
  define(
    "com/fido/utils/Utils",
    ["require", "exports", "module", "PIXI"],
    function (t, e, i) {
      var r = t("PIXI"),
        n = {};
      (n.getTexturesFromFrames = function (t) {
        for (var e = [], i = 0; i < t.length; i++)
          e.push(new r.Texture.fromFrame(t[i]));
        return e;
      }),
        (n.getTexturesFromImages = function (t) {
          for (var e = [], i = 0; i < t.length; i++)
            e.push(new r.Texture.fromImage(t[i]));
          return e;
        }),
        (n.getTexturesFromFramesWithPrefix = function (t, e, i) {
          var n = [];
          void 0 == i && (i = 0);
          for (var o = 0; e > o; o++) {
            var s = o + i,
              a = t.replace("%%", 10 > s ? "0" + s : s);
            n.push(new r.Texture.fromFrame(a));
          }
          return n;
        }),
        (n.formatScore = function (t) {
          for (
            var e = t.toString().split(""),
              i = "",
              r = e.length,
              n = (r % 3) - 1,
              o = 0;
            r > o;
            o++
          )
            (i += e[o]), (o - n) % 3 == 0 && o != r - 1 && (i += ",");
          return i;
        }),
        (n.formatName = function (t) {
          for (var e = t.split(" "), i = e.length - 1; i >= 0; i--)
            0 !== e[i].length &&
              ((wordArray = e[i].split("")),
              (wordArray[0] = wordArray[0].toUpperCase()),
              (e[i] = wordArray.join("")));
          return (word = e.join(" "));
        }),
        window.console || (window.console = { log: function () {} }),
        (n.get_query = function (t) {
          for (
            var e = location.href,
              i = e.substring(e.indexOf("?") + 1).split("&"),
              r = 0,
              n = {};
            r < i.length;
            r++
          )
            (i[r] = i[r].split("=")),
              (n[i[r][0]] = decodeURIComponent(i[r][1]));
          return n.hasOwnProperty(t) ? n[t] : !1;
        }),
        (i.exports = n);
    }
  ),
  define(
    "com/nebulon/app/screens/LoaderScreen",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "../buttons/AabButton",
      "../buttons/AabLabelButton",
      "com/fido/ui/buttons/Button",
      "com/fido/system/Ticker",
      "com/fido/utils/FrameWait",
      "com/fido/system/Device",
      "com/fido/utils/Utils",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n =
          (t("../buttons/AabButton"),
          t("../buttons/AabLabelButton"),
          t("com/fido/ui/buttons/Button"),
          t("com/fido/system/Ticker")),
        o =
          (t("com/fido/utils/FrameWait"),
          t("com/fido/system/Device"),
          t("com/fido/utils/Utils"),
          function (t) {
            (this.app = t),
              r.DisplayObjectContainer.call(this),
              (this.text = new r.Text("l o a d i n g . . .", {
                fill: "white",
                font: "20px Arial",
              })),
              this.text.anchor.set(0.5),
              (this.text.filters = [new r.filters.BloomFilter()]),
              (this.tick = 0);
          });
      (o.prototype = Object.create(r.DisplayObjectContainer.prototype)),
        (o.prototype.onShown = function () {
          n.instance.add(this.update, this);
        }),
        (o.prototype.onHidden = function () {
          n.instance.remove(this.update, this);
        }),
        (o.prototype.update = function () {
          (this.tick += 0.05),
            (this.text.alpha = 0.6 + 0.5 * (Math.sin(this.tick) + 1) * 0.4);
        }),
        (o.prototype.resize = function (t, e) {
          (this.w = t),
            (this.h = e),
            (this.text.x = t / 2),
            (this.text.y = e / 2);
        }),
        (i.exports = o);
    }
  ),
  define(
    "com/fido/utils/Mini3d",
    ["require", "exports", "module"],
    function (t, e, i) {
      function r(t, e) {
        return t.depth - e.depth;
      }
      (Mini3d = function () {
        (this.view = new PIXI.DisplayObjectContainer()),
          (this.children = []),
          (this.focalLength = 400),
          (this.position3d = { x: 0, y: 0, z: 0 }),
          (this.rotation3d = { x: 0, y: 0, z: 0 });
      }),
        (Mini3d.constructor = Mini3d),
        (Mini3d.prototype.addChild = function (t) {
          t.position3d || (t.position3d = { x: 0, y: 0, z: 0 }),
            t.anchor.set(0.5),
            this.view.addChild(t),
            this.children.push(t);
        }),
        (Mini3d.prototype.update = function () {
          for (
            var t,
              e,
              i,
              n,
              o,
              s,
              a,
              h,
              l,
              u,
              c = Math.sin(this.rotation3d.x),
              d = Math.cos(this.rotation3d.x),
              p = Math.sin(this.rotation3d.y),
              f = Math.cos(this.rotation3d.y),
              m = Math.sin(this.rotation3d.z),
              v = Math.cos(this.rotation3d.z),
              g = 0;
            g < this.children.length;
            g++
          ) {
            var y = this.children[g];
            (t = y.position3d.x - this.position3d.x),
              (e = y.position3d.y - this.position3d.y),
              (i = y.position3d.z - this.position3d.z),
              (n = d * e - c * i),
              (o = c * e + d * i),
              (a = f * o - p * t),
              (s = p * o + f * t),
              (h = v * s - m * n),
              (l = m * s + v * n),
              (u = this.focalLength / (this.focalLength + a)),
              (t = h * u),
              (e = l * u),
              (i = a),
              (y.scale.x = y.scale.y = u * y.scaleRatio),
              (y.scale.x *= y.scaleOffset.x),
              (y.scale.y *= y.scaleOffset.y),
              (y.depth = -y.position3d.z),
              (y.position.x = t),
              (y.position.y = e);
          }
          this.view.children.sort(r);
        }),
        (i.exports = Mini3d);
    }
  ),
  define(
    "com/nebulon/app/screens/Cloud",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/system/Device",
      "com/fido/utils/Mini3d",
      "com/fido/system/Ticker",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n =
          (t("com/fido/system/Device"),
          t("com/fido/utils/Mini3d"),
          t("com/fido/system/Ticker")),
        o = function (t) {
          r.Sprite.call(this, t),
            (this.position3d = { x: 0, y: 0, z: 0 }),
            (this.scaleRatio = 2),
            (this.scaleOffset = new r.Point(1, 1));
        };
      (o.prototype = Object.create(r.Sprite.prototype)),
        (o.prototype.onShow = function () {
          n.instance.add(this.update, this);
        }),
        (o.prototype.onShown = function () {}),
        (o.prototype.update = function () {}),
        (i.exports = o);
    }
  ),
  define(
    "com/fido/utils/Math2",
    ["require", "exports", "module"],
    function (t, e, i) {
      var r = {};
      (r.random = function (t, e) {
        return (
          (t = t || 0), (e = void 0 === e ? 1 : e), t + Math.random() * (e - t)
        );
      }),
        (r.randomInt = function (t, e) {
          return (t + Math.random() * (e - t)) | 0;
        }),
        (r.randomSeed = function (t, e, i) {
          (min = t), (max = e), (i = i || 1), (i = (9301 * i + 49297) % 233280);
          var r = i / 233280;
          return min + r * (max - min);
        }),
        (r.randomChance = function (t, e) {
          return r.randomSeed(0, 1, e) > t;
        }),
        (i.exports = r);
    }
  ),
  define(
    "com/nebulon/app/screens/Clouds",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/system/Device",
      "com/fido/utils/Mini3d",
      "./Cloud",
      "com/fido/utils/Math2",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n = (t("com/fido/system/Device"), t("com/fido/utils/Mini3d")),
        o = t("./Cloud"),
        s = t("com/fido/utils/Math2"),
        a = function (t) {
          (this.app = t),
            r.DisplayObjectContainer.call(this),
            (this.bg = new r.Sprite.fromImage(
              window.ASSET_URL + "img/skyBG.jpg"
            )),
            this.addChild(this.bg),
            (this.mini3d = new n()),
            this.addChild(this.mini3d.view),
            (this.speed = -15),
            (this.range = 3e3),
            (this.clouds = []),
            (this.images = ["skyCloud1.png", "skyCloud2.png"]);
          for (var e = 0; 50 > e; e++) {
            var i = new o(
              r.Texture.fromImage(ASSET_URL + "img/" + this.images[e % 2])
            );
            this.mini3d.addChild(i),
              this.clouds.push(i),
              (i.position3d.z = -(this.range / 50) * e);
          }
          this.count = 0;
        };
      (a.prototype = Object.create(r.DisplayObjectContainer.prototype)),
        (a.prototype.onShow = function () {}),
        (a.prototype.onShown = function () {}),
        (a.prototype.update = function () {
          for (var t = 0; t < this.clouds.length; t++) {
            var e = this.clouds[t];
            (e.position3d.z += this.speed),
              e.position3d.z < 300
                ? (e.alpha = e.position3d.z / 300)
                : (e.alpha += 0.01 * (1 - e.alpha)),
              e.position3d.z < 0 &&
                ((e.scaleRatio = 5),
                (e.position3d.z += this.range),
                (e.position3d.x = s.random(-4500, 4500)),
                (e.position3d.y =
                  1200 - Math.abs(0.2 * e.position3d.x) + s.random(0, 200)),
                (e.rotation = e.position3d.x * -2e-4),
                (e.alpha = 0),
                (e.scaleOffset.x = s.random(0.6, 1.4)),
                (e.scaleOffset.y = s.random(0.9, 1.1)),
                Math.random() < 0.5 && (e.scaleOffset.x *= -1));
          }
          this.mini3d.update(),
            this.count++,
            (this.mini3d.view.rotation = 0.08 * Math.cos(0.02 * this.count)),
            (this.mini3d.position3d.y = 200 * Math.sin(0.03 * this.count)),
            (this.mini3d.position3d.y -= 50),
            (this.mini3d.rotation3d.y =
              0.2 * Math.sin(0.02 * this.count * 0.5));
        }),
        (a.prototype.resize = function (t, e) {
          (this.mini3d.view.x = t / 2), (this.mini3d.view.y = e / 2);
        }),
        (i.exports = a);
    }
  ),
  define(
    "com/nebulon/app/screens/Stars",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/system/Device",
      "com/fido/utils/Mini3d",
      "com/fido/system/Ticker",
      "./Cloud",
      "com/fido/utils/Math2",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n = (t("com/fido/system/Device"), t("com/fido/utils/Mini3d")),
        o = (t("com/fido/system/Ticker"), t("./Cloud")),
        s = t("com/fido/utils/Math2"),
        a = function (t) {
          (this.app = t),
            r.DisplayObjectContainer.call(this),
            (this.bg = new r.Sprite.fromImage(
              window.ASSET_URL + "img/spaceBG.jpg"
            )),
            this.bg.anchor.set(0.5),
            (this.bg.x = 950),
            (this.bg.y = 600),
            this.bg.scale.set(1.185),
            this.addChild(this.bg),
            (this.sun = new r.Sprite.fromImage(
              window.ASSET_URL + "img/sun_add.png"
            )),
            (this.mini3d = new n()),
            this.addChild(this.mini3d.view),
            (this.speed = -5),
            (this.range = 2e3),
            (this.clouds = []),
            (this.images = [
              "spaceCloud1.png",
              "spaceCloud2.png",
              "spaceCloud3.png",
            ]);
          for (var e = 0; 30 > e; e++) {
            var i = new o(
              r.Texture.fromImage(ASSET_URL + "img/" + this.images[e % 3])
            );
            (i.blendMode = r.CONST.BLEND_MODES.SCREEN),
              (i.rotSpeed = 4),
              this.mini3d.addChild(i),
              this.clouds.push(i),
              (i.position3d.z = -(this.range / 30) * e);
          }
          this.addChild(this.sun), (this.count = 0);
        };
      (a.prototype = Object.create(r.DisplayObjectContainer.prototype)),
        (a.prototype.onShow = function () {}),
        (a.prototype.onShown = function () {}),
        (a.prototype.update = function () {
          for (var t = 0; t < this.clouds.length; t++) {
            var e = this.clouds[t];
            (e.position3d.z += this.speed),
              e.position3d.z < 300
                ? (e.alpha = e.position3d.z / 300)
                : (e.alpha += 0.01 * (1 - e.alpha)),
              (e.rotation += e.rotSpeed),
              e.position3d.z < 0 &&
                ((e.scaleRatio = 5),
                (e.rotSpeed = s.random(-5e-4, 5e-4)),
                (e.position3d.z += this.range),
                (e.position3d.x = s.random(-4950, 4950)),
                (e.position3d.y = s.random(-4950, 4950)),
                (e.alpha = 0),
                (e.rotation = 0),
                (e.scaleOffset.x = s.random(1, 1.2)),
                (e.scaleOffset.y = s.random(1, 1.2)),
                Math.random() < 0.5 && (e.scaleOffset.x *= -1));
          }
          this.mini3d.update(),
            (this.count += 0.25),
            (this.bg.rotation += 2e-4),
            (this.mini3d.view.rotation = 0.08 * Math.cos(0.02 * this.count)),
            (this.mini3d.position3d.y = 200 * Math.sin(0.03 * this.count)),
            (this.mini3d.position3d.y -= 50),
            (this.mini3d.rotation3d.y =
              0.2 * Math.sin(0.02 * this.count * 0.5));
        }),
        (a.prototype.resize = function (t, e) {
          (this.mini3d.view.x = t / 2), (this.mini3d.view.y = e / 2);
        }),
        (i.exports = a);
    }
  ),
  define(
    "com/fido/physics/DoubleSpring",
    ["require", "exports", "module"],
    function (t, e, i) {
      var r = function () {
        (this.x = 0),
          (this.ax = 0),
          (this.dx = 0),
          (this.tx = 0),
          (this.y = 0),
          (this.ay = 0),
          (this.dy = 0),
          (this.ty = 0),
          (this.max = 30),
          (this.damp = 0.75),
          (this.springiness = 0.09),
          (this.max = 160),
          (this.damp = 0.7),
          (this.springiness = 0.69);
      };
      (r.constructor = r),
        (r.prototype.update = function () {
          (this.ax = (this.tx - this.x) * this.springiness),
            (this.dx += this.ax),
            (this.dx *= this.damp),
            this.dx < -this.max
              ? (this.dx = -this.max)
              : this.dx > this.max && (this.dx = this.max),
            (this.x += this.dx),
            (this.ay = (this.ty - this.y) * this.springiness),
            (this.dy += this.ay),
            (this.dy *= this.damp),
            this.dy < -this.max
              ? (this.dy = -this.max)
              : this.dy > this.max && (this.dy = this.max),
            (this.y += this.dy);
        }),
        (r.prototype.reset = function () {
          (this.x = 0),
            (this.ax = 0),
            (this.dx = 0),
            (this.tx = 0),
            (this.y = 0),
            (this.ay = 0),
            (this.dy = 0),
            (this.ty = 0);
        }),
        (i.exports = r);
    }
  ),
  define(
    "com/nebulon/app/screens/MaskyMask",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/system/Device",
      "com/fido/utils/Mini3d",
      "com/fido/system/Ticker",
      "com/fido/utils/Math2",
      "com/fido/physics/DoubleSpring",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n =
          (t("com/fido/system/Device"),
          t("com/fido/utils/Mini3d"),
          t("com/fido/system/Ticker"),
          t("com/fido/utils/Math2")),
        o = t("com/fido/physics/DoubleSpring"),
        s = function () {
          var t = new r.RenderTexture(window.renderer, 1900, 1200);
          r.Sprite.call(this, t),
            (this.container = new r.Container()),
            (this.m = new r.Matrix()),
            this.m.translate(950, 600),
            (this.blobs = []);
          for (var e = 0; 50 > e; e++)
            (blob = new r.Sprite.fromImage(ASSET_URL + "img/blob.png")),
              (blob.target = new r.Point(
                n.random(-950, 950),
                n.random(-600, 600)
              )),
              this.blobs.push(blob),
              (blob.spring = new o()),
              (blob.rotationSpeed = n.random(-0.1, 0.1)),
              blob.anchor.set(0.5),
              (blob.count = Math.random() * Math.PI * 2),
              this.container.addChild(blob);
          (this.isOpen = !1),
            (this.count = 0),
            this.anchor.set(0.5),
            (this.target = new r.Point());
        };
      (s.prototype = Object.create(r.Sprite.prototype)),
        (s.prototype.update = function () {
          this.count += 0.01;
          for (var t = 0; t < this.blobs.length; t++) {
            var e = this.blobs[t];
            e.count += 0.1;
            var i = Math.sin(0.5 * e.count);
            if (
              (e.spring.update(),
              e.scale.set(i),
              (e.rotation += 0.1 * e.rotationSpeed),
              (e.alpha = 0.9),
              e.count > 2 * Math.PI)
            ) {
              e.count -= 2 * Math.PI;
              var r = Math.random() * Math.PI * 2,
                o = n.random(100, 200);
              (e.x = this.target.x + Math.sin(r) * o),
                (e.y = this.target.y + Math.cos(r) * o),
                (e.rotation = Math.random() * Math.PI * 2);
            }
          }
          this.texture.render(this.container, this.m, !0, !0);
        }),
        (s.prototype.open = function () {
          this.isOpen = !0;
          for (var t = 0; t < this.blobs.length; t++) {
            this.blobs[t];
          }
        }),
        (s.prototype.close = function () {
          this.isOpen = !1;
          for (var t = 0; t < this.blobs.length; t++) {
            this.blobs[t];
          }
        }),
        (s.prototype.resize = function (t, e) {
          (this.x = t / 2), (this.y = e / 2);
        }),
        (i.exports = s);
    }
  ),
  define(
    "com/nebulon/app/screens/SuperFilter",
    ["require", "exports", "module", "PIXI"],
    function (t, e, i) {
      function r(t) {
        var e = new n.math.Matrix();
        n.AbstractFilter.call(
          this,
          [
            "attribute vec2 aVertexPosition;",
            "attribute vec2 aTextureCoord;",
            "attribute vec4 aColor;",
            "uniform mat3 projectionMatrix;",
            "uniform mat3 otherMatrix;",
            "varying vec2 vMaskCoord;",
            "varying vec2 vTextureCoord;",
            "varying vec4 vColor;",
            "void main(void)",
            "{",
            "   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);",
            "   vTextureCoord = aTextureCoord;",
            "   vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0)  ).xy;",
            "   vColor = vec4(aColor.rgb * aColor.a, aColor.a);",
            "}",
          ].join("\n"),
          [
            "precision lowp float;",
            "varying vec2 vMaskCoord;",
            "varying vec2 vTextureCoord;",
            "varying vec4 vColor;",
            "uniform sampler2D uSampler;",
            "uniform sampler2D mask;",
            "void main(void)",
            "{",
            "   vec4 masky =  texture2D(mask, vMaskCoord);",
            "   float strength =  (masky.r * masky.a);",
            "   strength *= 5.0;",
            "   strength = min(1.0, strength ) ;",
            "   vec4 original =  texture2D(uSampler, vTextureCoord +  (1.0-strength) * 0.1);",
            "   original *= strength;",
            "   gl_FragColor =  original;",
            "}",
          ].join("\n"),
          {
            mask: { type: "sampler2D", value: t.texture },
            otherMatrix: { type: "mat3", value: e.toArray(!0) },
          }
        ),
          (this.maskSprite = t),
          (this.maskMatrix = e);
      }
      var n = t("PIXI");
      (r.prototype = Object.create(n.AbstractFilter.prototype)),
        (r.prototype.constructor = r),
        (i.exports = r),
        (r.prototype.applyFilter = function (t, e, i) {
          var r = t.filterManager;
          r.calculateMappedMatrix(e.frame, this.maskSprite, this.maskMatrix),
            (this.uniforms.otherMatrix.value = this.maskMatrix.toArray(!0));
          var n = this.getShader(t);
          r.applyFilter(n, e, i);
        }),
        Object.defineProperties(r.prototype, {
          map: {
            get: function () {
              return this.uniforms.mask.value;
            },
            set: function (t) {
              this.uniforms.mask.value = t;
            },
          },
          offset: {
            get: function () {
              return this.uniforms.offset.value;
            },
            set: function (t) {
              this.uniforms.offset.value = t;
            },
          },
        }),
        (i.exports = r);
    }
  ),
  define(
    "com/nebulon/app/screens/SpeedFilter",
    ["require", "exports", "module", "PIXI"],
    function (t, e, i) {
      var r = t("PIXI"),
        n = (i.exports = function () {
          r.AbstractFilter.call(
            this,
            null,
            [
              "precision highp float;",
              "uniform sampler2D uSampler;",
              "varying vec2 vTextureCoord;",
              "varying vec4 vColor;",
              "uniform vec2 center;",
              "uniform float strength;",
              "uniform vec2 texSize;",
              "uniform float vignetteOffset;",
              "uniform float vignetteDarkness;",
              "uniform float sine;",
              "uniform float cosine;",
              "uniform float shiftSampleDistance;",
              "uniform vec2 red;",
              "uniform vec2 green;",
              "uniform vec2 blue;",
              "uniform float saturation;",
              "uniform float saturationConstant;",
              "float random(vec3 scale, float seed) {",
              "return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);",
              "}",
              "vec3 czm_saturation(vec3 rgb, float adjustment)",
              "{",
              "const vec3 W = vec3(0.2125, 0.7154, 0.0721);",
              "vec3 intensity = vec3(dot(rgb, W));",
              "return mix(intensity, rgb, adjustment);",
              "}",
              "void main() {",
              "vec4 color = vec4(0.0);",
              "float total = 0.0;",
              "vec2 toCenter = center - vTextureCoord * texSize;",
              "float blurAmount = 0.3;",
              "vec4 actual = texture2D(uSampler, vTextureCoord );",
              "float dist = distance( vTextureCoord, vec2( 0.5 ) );",
              "float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);",
              "for (float t = 0.0; t <= 20.0; t++) {",
              "   float percent = (t + offset) / 20.0;",
              "   float weight = 4.0 * (percent - percent * percent);",
              "   vec4 sample = texture2D(uSampler, vTextureCoord + toCenter * percent * strength / texSize);",
              "   sample.rgb *= sample.a;",
              "   color += sample * weight;",
              "   total += weight;",
              "}",
              "color = color / total;",
              "float mixBlur = 0.08;",
              "float distMix = smoothstep( 0.8, vignetteDarkness * 0.799, dist *( vignetteOffset + vignetteDarkness ) );",
              "gl_FragColor = mix( color, actual, max( mixBlur, distMix ) );",
              "vec4 shift;",
              "float distMixInv = 1.0 - distMix;",
              "shift.r = texture2D(uSampler, vTextureCoord + ( red * distMixInv ) /texSize.xy ).r;",
              "shift.g = texture2D(uSampler, vTextureCoord + ( green * distMixInv ) /texSize.xy ).g;",
              "shift.b = texture2D(uSampler, vTextureCoord + ( blue * distMixInv ) /texSize.xy ).b;",
              "shift.a = texture2D(uSampler, vTextureCoord ).a;",
              "gl_FragColor = mix( gl_FragColor, shift, 0.3 );",
              "float feather = 0.005;",
              "float satMix = 1.0 - smoothstep( 0.5, feather * 0.499, dist * ( 1.2 + feather ) );",
              "satMix *= saturationConstant;",
              "gl_FragColor.rgb = czm_saturation(gl_FragColor.rgb, max( saturation * ( satMix + 1.0 ), 1.0 )  );",
              "gl_FragColor.rgb /= gl_FragColor.a + 0.00001;",
              "}",
            ].join("\n"),
            {
              center: { type: "v2", value: { x: 950, y: 600 } },
              strength: { type: "1f", value: 0.15 },
              sine: { type: "1f", value: 0.3 },
              cosine: { type: "1f", value: 0 },
              red: { type: "v2", value: { x: 20, y: 0 } },
              green: { type: "v2", value: { x: 0, y: 10 } },
              blue: { type: "v2", value: { x: -30, y: 5 } },
              texSize: { type: "v2", value: { x: 1900, y: 1200 } },
              vignetteOffset: { type: "1f", value: 0.96 },
              vignetteDarkness: { type: "1f", value: 0 },
              saturation: { type: "1f", value: 0 },
              saturationConstant: { type: "1f", value: 0 },
            }
          );
        });
      (n.prototype = Object.create(r.AbstractFilter.prototype)),
        (n.constructor = n),
        Object.defineProperties(n.prototype, {
          center: {
            get: function () {
              return this.uniforms.center.value;
            },
            set: function (t) {
              this.uniforms.center.value = t;
            },
          },
          strength: {
            get: function () {
              return this.uniforms.strength.value;
            },
            set: function (t) {
              this.uniforms.strength.value = t;
            },
          },
          texSize: {
            get: function () {
              return this.uniforms.texSize.value;
            },
            set: function (t) {
              this.uniforms.texSize.value = t;
            },
          },
          vignetteDarkness: {
            get: function () {
              return this.uniforms.vignetteDarkness.value;
            },
            set: function (t) {
              this.uniforms.vignetteDarkness.value = t;
            },
          },
          vignetteOffset: {
            get: function () {
              return this.uniforms.vignetteOffset.value;
            },
            set: function (t) {
              this.uniforms.vignetteOffset.value = t;
            },
          },
          sine: {
            get: function () {
              return this.uniforms.sine.value;
            },
            set: function (t) {
              this.uniforms.sine.value = t;
            },
          },
          cosine: {
            get: function () {
              return this.uniforms.cosine.value;
            },
            set: function (t) {
              this.uniforms.cosine.value = t;
            },
          },
          red: {
            get: function () {
              return this.uniforms.red.value;
            },
            set: function (t) {
              this.uniforms.red.value = t;
            },
          },
          green: {
            get: function () {
              return this.uniforms.green.value;
            },
            set: function (t) {
              this.uniforms.green.value = t;
            },
          },
          blue: {
            get: function () {
              return this.uniforms.blue.value;
            },
            set: function (t) {
              this.uniforms.blue.value = t;
            },
          },
          saturation: {
            get: function () {
              return this.uniforms.saturation.value;
            },
            set: function (t) {
              this.uniforms.saturation.value = t;
            },
          },
          saturationConstant: {
            get: function () {
              return this.uniforms.saturationConstant.value;
            },
            set: function (t) {
              this.uniforms.saturationConstant.value = t;
            },
          },
        });
    }
  ),
  define(
    "com/nebulon/app/screens/MainScreen",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/system/Device",
      "com/nebulon/app/screens/Clouds",
      "com/nebulon/app/screens/Stars",
      "com/nebulon/app/screens/MaskyMask",
      "com/fido/system/Ticker",
      "./SuperFilter",
      "./SpeedFilter",
    ],
    function (t, e, i) {
      var r = t("PIXI"),
        n = t("com/fido/system/Device"),
        o = t("com/nebulon/app/screens/Clouds"),
        s = t("com/nebulon/app/screens/Stars"),
        a = t("com/nebulon/app/screens/MaskyMask"),
        h = t("com/fido/system/Ticker"),
        l = t("./SuperFilter"),
        u = t("./SpeedFilter"),
        c = function (t) {
          (this.app = t),
            r.DisplayObjectContainer.call(this),
            (this.clouds = new o()),
            (this.stars = new s()),
            this.addChild(this.clouds),
            this.addChild(this.stars),
            (this.maskyMask = new a()),
            this.addChild(this.maskyMask),
            (this.maskyMask.renderable = !1),
            (this.superFilter = new l(this.maskyMask)),
            (this.interactiveChildren = !1),
            (this.hitArea = new r.Rectangle(0, 0, 1900, 1200)),
            (this.interactive = !0),
            (this.mousedown = this.touchstart = this.onDown.bind(this)),
            (this.mousemove = this.touchmove = this.onMove.bind(this)),
            (this.speedFilter = new u()),
            (this.stars.filters = n.instance.isMobile
              ? [this.superFilter]
              : [this.superFilter]),
            (this.autoMode = !0),
            (this.posy = new r.Point()),
            (this.userposy = new r.Point()),
            (this.count = 0),
            (this.autoCount = 1e5),
            (this.ratio = 0);
        };
      (c.prototype = Object.create(r.DisplayObjectContainer.prototype)),
        (c.prototype.onDown = function () {
          this.maskyMask.isOpen
            ? this.maskyMask.close()
            : this.maskyMask.open();
        }),
        (c.prototype.onMove = function (t) {
          var e = t.data.getLocalPosition(this);
          (this.autoMode = !1),
            (this.autoCount = 0),
            (this.userposy.x = e.x - 950),
            (this.userposy.y = e.y - 600);
        }),
        (c.prototype.onShow = function () {
          h.instance.add(this.update, this);
        }),
        (c.prototype.onShown = function () {}),
        (c.prototype.update = function () {
          this.autoCount++,
            this.autoCount > 60
              ? ((this.count += 0.01),
                (this.posy.x = 1900 * Math.sin(this.count) * 0.25),
                (this.posy.y = 1200 * Math.cos(2 * this.count) * 0.05),
                (this.ratio += 0.1 * (1 - this.ratio)))
              : (this.ratio += 0.1 * (0 - this.ratio));
          var t =
              this.userposy.x + (this.posy.x - this.userposy.x) * this.ratio,
            e = this.userposy.y + (this.posy.y - this.userposy.y) * this.ratio;
          (this.maskyMask.target.x = t),
            (this.maskyMask.target.y = e),
            this.clouds.update(),
            this.stars.update(),
            this.maskyMask.update();
        }),
        (c.prototype.resize = function (t, e) {
          this.clouds.resize(t, e),
            this.stars.resize(t, e),
            this.maskyMask.resize(t, e);
        }),
        (i.exports = c);
    }
  ),
  define(
    "APP_root",
    [
      "require",
      "exports",
      "module",
      "PIXI",
      "com/fido/app/App",
      "com/fido/system/Ticker",
      "com/fido/system/Device",
      "com/fido/sound/SoundManager",
      "com/nebulon/app/screens/LoaderScreen",
      "com/nebulon/app/screens/MainScreen",
    ],
    function (t, e, i) {
      var r = t("PIXI");
      window.PIXI = r;
      var n = t("com/fido/app/App"),
        o = t("com/fido/system/Ticker"),
        s =
          (t("com/fido/system/Device"),
          t("com/fido/sound/SoundManager"),
          t("com/nebulon/app/screens/LoaderScreen")),
        a = t("com/nebulon/app/screens/MainScreen"),
        h = function () {
          var t = { orientationMode: 2 };
          n.call(this, t),
            (this.safeSize = { width: 1900, height: 1200 }),
            (this.maxSize = { width: 1900, height: 1200 }),
            this.onReady.add(this.onAppReady, this),
            this.startup(),
            (this.ls = new s()),
            this.screenManager.addScreen(this.ls, "loader"),
            this.screenManager.gotoScreenByID("loader");
          var e = new r.loaders.Loader();
          e
            .add("x", window.ASSET_URL + "img/skyBG.jpg")
            .add("x1", window.ASSET_URL + "img/skyCloud1.png")
            .add("xx", window.ASSET_URL + "img/skyCloud2.png")
            .add("x2", window.ASSET_URL + "img/spaceBG.jpg")
            .add("x3", window.ASSET_URL + "img/sun_add.png")
            .add("x4", window.ASSET_URL + "img/spaceCloud1.png")
            .add("x5", window.ASSET_URL + "img/spaceCloud2.png")
            .add("x6", window.ASSET_URL + "img/spaceCloud3.png")
            .add("x7", window.ASSET_URL + "img/blob.png")
            .load(this.onAppReady.bind(this)),
            window.addEventListener("message", function (t) {
              "resume" === t.data ? o.instance.start() : o.instance.stop();
            });
        };
      (h.prototype = Object.create(n.prototype)),
        (h.prototype.onAppReady = function () {
          (window.renderer = this.renderer),
            (this.starsScreen = new a(this)),
            this.screenManager.addScreen(this.starsScreen, "title"),
            this.screenManager.gotoScreenByID("title"),
            this.resize(this.w, this.h);
        }),
        (h.prototype.resize = function (t, e) {
          (this.w = t), (this.h = e);
          var i = 1;
          this.isMobile &&
            (i = window.devicePixelRatio
              ? window.devicePixelRatio
              : window.screen.deviceXDPI / window.screen.logicalXDPI);
          var r =
              t / this.safeSize.width > e / this.safeSize.height
                ? t / this.safeSize.width
                : e / this.safeSize.height,
            n = Math.min(this.maxSize.width * r, t),
            o = Math.min(this.maxSize.height * r, e);
          this.renderer.resize((n * i) | 0, (o * i) | 0),
            (this.view.style.width = n + "px"),
            (this.view.style.height = o + "px"),
            (this.view.style.left = t / 2 - n / 2 + "px"),
            (this.view.style.top = e / 2 - o / 2 + "px"),
            this.screenManager.resize(n / r, o / r),
            this.screenManager.container.scale.set(r * i);
        }),
        (i.exports = h);
    }
  );
var Stats = function () {
  var t = Date.now(),
    e = t,
    i = 0,
    r = 1 / 0,
    n = 0,
    o = 0,
    s = 1 / 0,
    a = 0,
    h = 0,
    l = 0,
    u = document.createElement("div");
  (u.id = "stats"),
    u.addEventListener(
      "mousedown",
      function (t) {
        t.preventDefault(), y(++l % 2);
      },
      !1
    ),
    (u.style.cssText = "width:80px;opacity:0.9;cursor:pointer");
  var c = document.createElement("div");
  (c.id = "fps"),
    (c.style.cssText =
      "padding:0 0 3px 3px;text-align:left;background-color:#002"),
    u.appendChild(c);
  var d = document.createElement("div");
  (d.id = "fpsText"),
    (d.style.cssText =
      "color:#0ff;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px"),
    (d.innerHTML = "FPS"),
    c.appendChild(d);
  var p = document.createElement("div");
  for (
    p.id = "fpsGraph",
      p.style.cssText =
        "position:relative;width:74px;height:30px;background-color:#0ff",
      c.appendChild(p);
    74 > p.children.length;

  ) {
    var f = document.createElement("span");
    (f.style.cssText =
      "width:1px;height:30px;float:left;background-color:#113"),
      p.appendChild(f);
  }
  var m = document.createElement("div");
  (m.id = "ms"),
    (m.style.cssText =
      "padding:0 0 3px 3px;text-align:left;background-color:#020;display:none"),
    u.appendChild(m);
  var v = document.createElement("div");
  (v.id = "msText"),
    (v.style.cssText =
      "color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px"),
    (v.innerHTML = "MS"),
    m.appendChild(v);
  var g = document.createElement("div");
  for (
    g.id = "msGraph",
      g.style.cssText =
        "position:relative;width:74px;height:30px;background-color:#0f0",
      m.appendChild(g);
    74 > g.children.length;

  )
    (f = document.createElement("span")),
      (f.style.cssText =
        "width:1px;height:30px;float:left;background-color:#131"),
      g.appendChild(f);
  var y = function (t) {
    switch ((l = t)) {
      case 0:
        (c.style.display = "block"), (m.style.display = "none");
        break;
      case 1:
        (c.style.display = "none"), (m.style.display = "block");
    }
  };
  return {
    REVISION: 11,
    domElement: u,
    setMode: y,
    begin: function () {
      t = Date.now();
    },
    end: function () {
      var l = Date.now();
      (i = l - t),
        (r = Math.min(r, i)),
        (n = Math.max(n, i)),
        (v.textContent = i + " MS (" + r + "-" + n + ")");
      var u = Math.min(30, 30 - 30 * (i / 200));
      return (
        (g.appendChild(g.firstChild).style.height = u + "px"),
        h++,
        l > e + 1e3 &&
          ((o = Math.round((1e3 * h) / (l - e))),
          (s = Math.min(s, o)),
          (a = Math.max(a, o)),
          (d.textContent = o + " FPS (" + s + "-" + a + ")"),
          (u = Math.min(30, 30 - 30 * (o / 100))),
          (p.appendChild(p.firstChild).style.height = u + "px"),
          (e = l),
          (h = 0)),
        l
      );
    },
    update: function () {
      t = this.end();
    },
  };
};
define("stats", function () {}),
  (window.ASSET_URL = "assets/"),
  (config = { app: "com/fortieth/FortiethApp" }),
  window.console || (window.console = { log: function () {} }),
  window.console.log || (window.console.log = function () {}),
  require.config({
    baseUrl: "./js",
    paths: {
      PIXI: "libs/pixi.min",
      TWEEN: "libs/TweenLite.min",
      EASEPACK: "libs/EasePack.min",
      CSSPACK: "libs/CSSPlugin.min",
      HOWLER: "libs/howler.min",
      signals: "../node_modules/signals/dist/signals",
      APP_root: "com/nebulon/app/NebulonApp",
      stats: "libs/stats.min",
    },
  }),
  (window.DEVICE_SCALE = window.devicePixelRatio || 1),
  hasCanvasSupport()
    ? require([
        "TWEEN",
        "EASEPACK",
        "CSSPACK",
        "HOWLER",
        "PIXI",
        "APP_root",
        "stats",
        "com/fido/system/Device",
      ], function (t, e, i, r, n, o, s, a) {
        function h() {
          document.getElementById("container");
          (a.instance.iOS && a.instance.iOS_version < 7) ||
            window.scrollTo(0, 0),
            l.resize(window.innerWidth, window.innerHeight);
        }
        var l = new o();
        window.app = l;
        var u = document.getElementById("container");
        u.appendChild(l.view),
          (u.style.background = "black"),
          (l.view.style.position = "absolute"),
          (l.view.style.top = 0),
          (l.view.style.left = 0),
          window.addEventListener("resize", function () {
            setTimeout(h, 100), setTimeout(h, 200);
          }),
          setTimeout(h, 100),
          setTimeout(h, 200);
      })
    : require(["com/fido/app/Fallback"], function () {
        new Fallback(document.body);
      }),
  define("Boot", function () {});
